我有一个问题/疑问。在某些时候,我需要每个元素都是不可点击的,除了一个div,我有:
$('#MainDiv *:not(#Div)').click(function() {return false;});
在MainDiv中我还有其他几个元素(a,img,...),我需要将这些元素重新调整为可点击。可以撤消该功能,还是需要再次设置每个a.href和img.click这些元素?
答案 0 :(得分:0)
尝试使用$('#MainDiv *:not(#Div)').unbind("click");
然后,当您需要重新设置点击功能时,只需确保每个点击所做的内容都包含在其on函数中,这样您就可以执行类似$(".someEle").click(function(e){ yourCustomeFuncForThisItem(var1, var2); });
答案 1 :(得分:0)
这是事件委派的工作。 #MainDiv可能有几十个或几百个元素?只需在那里附加一个单击事件处理程序,让事件冒泡到#MainDiv,看看被点击的东西是否是#Div。
$("#MainDiv").click(function(event){
if ( event.target.id === "Div" ) {
// do the thing with Div
}
else {
return false;
}
});
答案 2 :(得分:0)
你可以试试这个:
$('#MainDiv *:not(#Div)').bind('click', false);
$('#MainDiv *:not(#Div)').unbind('click', false);
$('#MainDiv *:not(#Div)').bind('click', false);
应相当于$('#MainDiv *:not(#Div)').click(function() { return false; });