我有一段非常简单的javascript代码应该可以正常工作,只有当我在浏览器控制台中运行它时才能运行:
<script>
$(".hopscotch-close").click(function () {
alert("Hi");
Cookies.set("tourState", "closed")
})
</script>
因为它在控制台中运行,所以我知道:
1)".hopscotch-close"
没问题;
2)代码中没有可能阻止其运行的错误;
此外:
1)因为是一个“点击”事件我知道我没有准备好DOM(我可以放在任何地方 - 但在这种情况下,在<body>
的底部;
2)我知道我没有问题,因为对于一个类使用相同的名称而不是存在的其他名称;
3)Safari和Firefox中的行为相同,因此它不是浏览器问题。
我知道如果没有完整的代码,这很难,但如果有人经历过,那么可能对这可能是什么问题一无所知。
答案 0 :(得分:0)
根据您的评论,我发现element
附加了dynamically
,而不是
$(".hopscotch-close").on('click',
您需要使用 event-delegation
作为
$(document).on('click','.hopscotch-close',function(){
这样就可以了。
如果要将
.hopscotch-close
附加到任何已存在的静态element
然后您可以使用$(document).on('click'
而不是$('#yourStaticElementId').on('click','.hopscotch-close',function(){
Mage::getModel('scarletred_packingslips/order_fauxShipment')
这提高了网站的性能。