这种小小的代码安静在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制作的。哦,是的:直接点击图片即可。
答案 0 :(得分:0)
这个问题可能是由两件事造成的
<强> 1。当你附加监听器时,DOM还没有准备好
<强> 2。您的HTML代码是动态添加的
第一种情况的解决方案是将您的代码放在就绪块
下$(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);
});
});
并根据需要将点击添加到您的图片监听器
我希望这可以提供帮助
答案 1 :(得分:0)
我认为这最像是与Safari本身有关的问题: