首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单击事件中插入链接

在单击事件中插入链接
EN

Stack Overflow用户
提问于 2017-09-01 06:08:15
回答 1查看 34关注 0票数 0

我有一个脚本,人们点击‘呼叫我们’和号码出现,并发送GA事件。

是否可以将该号码链接到tel:-link,这样您就可以在手机上呼叫该号码?

我试着插入一个ID,但是这个号码在电话上是无法点击的。

谢谢你的回答,Dav

脚本是这样的:

代码语言:javascript
复制
function ipTrackButton(){
    if(window.jQuery){
        var $ = jQuery;

      var phonenumber = '+31 (0)20 - 679 62 22',
            holder = $('#text-5 > .textwidget'),
            newHTML = 'T: <span id="ipCallButton">Bel ons | Call us</span><br>E: <a href="mailto:info@pvhadvocaten.nl">info@pvhadvocaten.nl</a>',
            body = $('body');

        //Inject styles
        var style = '#ipCallButton { background-color:#eaeaea;padding:5px 8px;cursor:pointer;text-decoration:underline; } #ipCallButton.ipClicked { text-decoration:none;cursor:default; } ';

        body.append('<style>'+style+'</style>');

        //Set new content
        holder.html(newHTML);

        //Set event
        body.on('click', '#ipCallButton:not(.ipClicked)', function(){
            var _this = $(this);
            _this.html(phonenumber);
            _this.addClass('ipClicked');

            //Send event
            ga('send', 'event', 'Contact', 'Click', 'Telefoonnummer');
        });
    }
    else {
        setTimeout(ipTrackButton, 50);
    }
}

ipTrackButton();
EN

回答 1

Stack Overflow用户

发布于 2017-09-01 06:16:17

代码的问题在于,在任何时候都不能创建<a href="tel:...">元素。您所要做的就是将元素的innerHTML设置为无法单击的电话号码。

您必须实际插入<a>元素:

代码语言:javascript
复制
body.on('click', '#ipCallButton:not(.ipClicked)', function(){
    var _this = $(this);
    _this.append($('<a href="tel:' + phonenumber + '">' + phonenumber + '</a>'));
    _this.addClass('ipClicked');
    //Send event
    ga('send', 'event', 'Contact', 'Click', 'Telefoonnummer');
});

老实说,我认为一个更好的解决方案是直接在超文本标记语言中添加<a>,然后用CSS隐藏它,直到点击为止。你并不真正需要JavaScript来做很多你正在做的事情:

代码语言:javascript
复制
function ipTrackButton(){
    if(window.jQuery){
        var $ = jQuery;
        var body = $('body');

        //Set event
        body.on('click', '#ipCallButton:not(.ipClicked)', function(){
            var _this = $(this);
            _this.addClass('ipClicked');
            // removed: send ga event
       });
    }
    else {
        setTimeout(ipTrackButton, 50);
    }
}

ipTrackButton();
代码语言:javascript
复制
#ipCallButton:not(.ipClicked) .afterclick {
    display: none;
}
#ipCallButton.ipClicked .beforeclick {
    display: none;
}
/* copied */
#ipCallButton { background-color:#eaeaea;padding:5px 8px;cursor:pointer;text-decoration:underline; } #ipCallButton.ipClicked { text-decoration:none;cursor:default; } 
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
T: <span id="ipCallButton">
  <span class="beforeclick">Bel ons | Call us</span>
  <span class="afterclick">
      <a href="tel:+31 (0)20 - 679 62 22">+31 (0)20 - 679 62 22</a>
</span><br>
E: <a href="mailto:info@pvhadvocaten.nl">info@pvhadvocaten.nl</a>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45990759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档