我正在尝试在用户点击标签时执行某些操作。
<label class="my-label"> ....
我正在尝试触发点击事件 它适用于 chrome 和 safari,但不适用于 IE 11。
$(".my-label").click(function(){
});
我试过、绑定(bind)、激活,但没有成功。
请帮我解决这个问题。 为此花了2天时间,在这里疯了。
谢谢。
最佳答案
替换
$(".my-label").click
与
$(".my-label").click();
您没有通过click
调用该方法。你只是引用它。我想知道为什么它在 Safari/Chrome 中有效:它不应该。
编辑:用户编辑了问题,提供了更多上下文。
很可能,它现在不起作用的原因是您缺少准备好的文档。将您的代码替换为:
$(document).ready(function(){
console.log("document ready!");
$(".my-label").click(function(){
console.log("click function!");
});
});
请报告您在 JavaScript 控制台中看到的内容。
如果现在可以正常工作,那么 Safari/Chrome 已经可以的原因是,在这些浏览器中,代码是在 DOM 渲染之后执行的。那只是运气。永远不要依赖 DOM 准备就绪:始终将引用任何 DOM 节点的所有代码放在 $(document).ready()
调用中。
如果这在 IE11 中仍然不起作用,那么您应该为您的问题提供更多上下文。例如,console.log($(".my-label").length)
返回什么?如果它是 0
,则 IE11 未找到该节点。同样,发生这种情况的唯一原因是 DOM 尚未准备好,或者代码本身未被调用。如果您在 $(".my-label").click()
之前有任何错误,该代码将不会执行。请注意,许多在普通浏览器中可以接受的“错误”在 IE 中是不存在的。如果您没有发布您在 IE11 JavaScript 控制台中看到的内容,我认为它是清楚的(因此没有错误)但我不知道您是否检查过所以我认为这是一种可能性。
关于javascript - jquery 单击事件未在 Internet Explorer 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398138/