当用户点击标签时,我想要做一些事情。
<label class="my-label"> ....
我正在尝试触发点击事件,它在Chrome和Safari上正常工作,但在IE 11上无法正常工作。
$(".my-label").click(function(){
});
我尝试使用on、bind、live,但都没有成功。
请帮我解决这个问题。我已经花了两天时间了,快疯了。
谢谢。
当用户点击标签时,我想要做一些事情。
<label class="my-label"> ....
我正在尝试触发点击事件,它在Chrome和Safari上正常工作,但在IE 11上无法正常工作。
$(".my-label").click(function(){
});
我尝试使用on、bind、live,但都没有成功。
请帮我解决这个问题。我已经花了两天时间了,快疯了。
谢谢。
替换
$(".my-label").click
使用
$(".my-label").click();
click
方法,而是只是引用了它。我不知道为什么它在Safari/Chrome中能够工作:这是不应该的。
编辑:用户编辑了问题并提供了更多上下文。
很可能,现在它不起作用的原因是因为你缺少了一个文档准备就绪的条件。请使用以下代码替换:
$(document).ready(function(){
console.log("document ready!");
$(".my-label").click(function(){
console.log("click function!");
});
});
你是否将点击处理程序设置在dom就绪回调内部?如果没有,你的javascript语句可能会在标签存在于DOM之前执行。
这里有一个fiddle:http://jsfiddle.net/muglio/mTaVR/
$(document).ready(function() {
$('.my-label').on('click',function(evt) {
alert('clicked');
});
});
这是我为了使事情正常工作所必须做的。我最好的猜测是,对focus()的调用也会导致它失去焦点,这就是IE触发change事件的原因。
此外,关于建议使用.click()方法的说明...虽然这将允许事件触发,以便可以运行代码,但它不会导致
click
代替click()
在Safari或Chrome中不起作用,正如其他人也指出的那样。我猜测你的代码中其他地方有错误,IE不喜欢,而这些错误在其他浏览器中被忽略了... - A.O.