。click()在Safari中不起作用

问题描述 投票:1回答:2

这种一点点的代码和平性在Firefox中有效,但在Safari中无效:

$('.pinterest-button').click(function() {
    $('.pinterest-button').hide();
    $('#pin1 a img').click();
    setTimeout("$('.pinterest-button').show();", 1000);
});

如果单击了pinterest按钮,它将为该图片创建一个点击事件:

<div id="pin1" class="gallery span24 offset6">
   <a class="span24" alt="" title="bild" href="javascript:void((function()%7Bvar%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)%7D)());">
      <img class="gallery-img" src="http://www.goldentree.de/wordpress/assets/bild.jpg">
   </a>
</div>

如果我单击Safari中的按钮,它将被隐藏并且页面滚动到顶部,因此单击本身可以进行,但是我认为$('#pin1 a img')。click();应该触发图像href中的代码不起作用。我发现其他人也遇到同样的问题,但是他们的解决方案都不适合我,因此我不确定它的click()是否真的不起作用。我也不确定,是什么使我的浏览器滚动到顶部,因为我认为这是由pinterest overlay-thing造成的。哦,是的:直接单击图片即可。

jquery safari click
2个回答
0
投票

此问题可能是由两件事引起的

1。当您附加侦听器时,DOM还没有准备好]

2。您的HTML代码是动态添加的

第一种情况的解决方案是将代码放在ready块下

$(document).ready(function(){
    $('.pinterest-button').click(function() {
        $('.pinterest-button').hide();
        $('#pin1 a img').click();
        setTimeout("$('.pinterest-button').show();", 1000);
    });
}); 

第二种情况

的解决方案是使侦听器实时进行任何更改
 $(document).ready(function(){
        $('.pinterest-button').on('click',function() {
            $('.pinterest-button').hide();
            $('#pin1 a img').click();
            setTimeout("$('.pinterest-button').show();", 1000);
        });
    }); 

[如果需要,将点击添加到图像侦听器] >>

我希望这会有所帮助

我认为这最像是与Safari本身有关的问题:

https://github.com/webdriverio/webdriverio/issues/4565


0
投票

我认为这最像是与Safari本身有关的问题:

https://github.com/webdriverio/webdriverio/issues/4565

© www.soinside.com 2019 - 2024. All rights reserved.