javascript - jquery 单击事件未在 Internet Explorer 上触发

标签 javascript jquery css html

我正在尝试在用户点击标签时执行某些操作。

<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/

相关文章:

javascript - 如何使用 QUnit 和 TypeScript 加载公共(public)函数

javascript - Dropzone Rails 505 错误

javascript - jquery:将变量设置为从ajax调用返回的数据

javascript - $(*[attr]) 和 $([attr]) 之间的区别

javascript - jquery 定位与 position()

iphone - 灵活或流畅的 CSS 布局

javascript - 制作每小时天气预报的 slider

javascript - 从文本输入中突出显示 div 中的所有匹配词

html - 显示内联元素上的边框底部

CSS 文件的 ASP.NET 页面处理