我有这个HTML
<div id="outer">
<input id="input1" type="text" value="button1"/>
<input id="input2" type="text" value="button2"/>
</div>
我正在尝试使用此
var insideOuter = "";
jQuery('#outer').live('click', function (e) {
if(insideOuter != "" && insideOuter != 'outer'){
alert('Inside');
}
insideOuter = "outer";
return false;
});
jQuery('body').live('click', function (e) {
if(insideOuter != ""&& insideOuter != 'body'){
alert('Outside');
}
insideOuter = "body";
return false;
});
基本上,我正在尝试
id="outer"
然后不做任何其他事情id="outer"
做点什么有人可以推荐更好的东西吗?
答案 0 :(得分:0)
如果您没有尝试将事件绑定到DOM中尚不存在的元素,我建议不要使用live()。请改用bind()或click()。
此外,请使用length属性:
,而不是检查非空字符串if (insideOuter.length > 0 && ...
答案 1 :(得分:0)
$("body").live('click', function (e) {
if ( $(e.srcElement).attr("id") !== 'outer' && $(e.srcElement).parents("#outer").length == 0)
alert('foo');
});
答案 2 :(得分:-1)
这是最近一个问题的重复问题......我会找到答案并发布链接。
$(document).bind('click', function (e) {
// Do whatever you want; #outer click event has been stopped
});
$('#outer').bind('click', function(e) {
e.stopPropagation();
});