JQuery Click事件在Firefox和Safari浏览器中不起作用

时间:2017-10-31 07:57:52

标签: javascript jquery events jquery-events

我需要为图像添加注释标记,当用户点击每个注释时需要为图像显示相应的注释消息。

它在Chrome浏览器(Mobile(IOS和Android)和桌面)中运行良好,但在移动和桌面的Safari和Firefox浏览器中都无法正常工作。

脚本

$('.announation').each(function(i) {
$('.announation').eq(i).on('click touchstart', function(e) {
                $(
                    '.one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.ele'
                ).eq(i).css({
                    top: 0,
                    left: document.getElementById(e.srcElement.id).offsetLeft - 380
                }).show();
                document.getElementById(e.srcElement.id).innerText = "x";
                $('#' + e.srcElement.id).addClass("active");
            });
});

HTML:

   <div class="annotationsmark">
    <div class="announation" alt="one" id="oneA">+</div>
    <div class="announation" alt="two" id="twoA">+</div>
    </div>

    <div id="messages">
         <div class="one">One</div>
         <div class="two">two</div>
    </div>

我试过多种方式:

不起作用:

$(document.body).on( "click touchstart", ".announation", function() { });

不起作用:

$('body .announation').eq(i).on('click touchstart', function(e){});

不起作用:

$('.annotationsmark').on('click', '.announation', function(e) {
var i=$(this).index();
});

1 个答案:

答案 0 :(得分:2)

问题可能是因为srcElement。Firefox和& Safari可能不支持此功能。 尝试将srcElement替换为target e.srcElement.id e.target.id

或者,您可以创建变量并使用该变量

var target = event.target || event.srcElement;