比方说,我有一个场景,我有一个全局插件(或至少一个插件绑定到更广泛的事件)。jquery .live()事件交互
这个插件需要一个选择器,并绑定一个实时点击。事伪jQuery的可能看起来像这样的:
$.fn.changeSomething = function(){
$(this).live("change", function(){ alert("yo");});
}
在另一页,我有一个额外的生活结合是这样的:
$("input[type='checkbox']").live("click", function(){alert("ho");});
在这种情况下,该复选框将理想最终被绑定到两个现场活动。
我所看到的是,改变事件发生,因为它应该,我惊动“哟”。但是,使用这个实时点击事件,我从来没有触发它。但是,使用明确的点击绑定,我确实打了它。
简单的解决方法是在实时更改处理程序结束时触发点击事件,但对我来说这似乎很难受。有任何想法吗?
请注意,这是使用jquery 1.4.2,只发生在IE8(我假设6/7也会,但我没有测试过它们)。
一个例子(你需要jQuery的1.4.2.min.js):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.fn.changeSomething = function(){
var t = $(this);
t.live("change", function(){
alert("yo");
});
};
$(document).ready(function(){
$("input[type='checkbox']").changeSomething();
$("#special").live("click", function(){
alert("ho");
});
});
</script>
</head>
<body>
<form>
<input type="checkbox" id="cbx" />
<input type="checkbox" id="special" />
</form>
</body>
</html>
你能后周围的例子的代码不工作?例如它是否准备好了? – 2010-03-08 23:07:45
当然,请参阅我最近的修改。很简单的例子,但这基本上是流程。 – ddango 2010-03-08 23:20:52
我每次都会在这里开火,改变点燃,然后点击...你用什么浏览器出现问题? – 2010-03-08 23:25:37