2012-01-20 17 views
0

質問/問題があります。クリックを元に戻す(function(){return false;})

MainDivで
$('#MainDiv *:not(#Div)').click(function() {return false;}); 

私はいくつかの他の要素(IMG、...)を持っていると私はこれらの要素がにretun必要がありますいくつかの時点で私は、すべての要素が1つのdivを除く非クリッカブルであり、私が持っている必要がありますクリック可能にする。その関数を元に戻すことはできますか、それらの要素のすべてのa.hrefとimg.clickを再度設定する必要がありますか?

+0

に相当する理由だけではなく、最初の場所でのセレクタからそれらを省略すべきですか? –

+0

文書化されていないjQueryの内部では、これを行うことはできません。これをやってもらえない場合(そして将来のjQueryアップデートでスクリプトを壊す危険にさらされている場合)、それほど安くないかもしれませんが。 – Jon

+0

最初はクリックできないようにする必要があります。ボタンを押すとすぐにクリック可能になります。申し訳ありません私はあなたの返信を理解していない場合この時点で私はすることはできませんMДΓБДLL – Snapper

答えて

0

あなたはクリック機能をreasignする必要があるときだけあなたは、単にこれは、イベントのための仕事です$(".someEle").click(function(e){ yourCustomeFuncForThisItem(var1, var2); });

+0

だからSpyk3hh、あなたが言ったことを理解すれば...私は再びすべての要素の機能を設定する必要があります...そうですか? – Snapper

0

ような何かを行うことができますので、どのような各クリックが行うことは、その機能上に包まれていることを確認してください、そして、$('#MainDiv *:not(#Div)').unbind("click"); を使用してみてください委任。 #MainDivにはおそらく数十または数百の要素がありますか?そこにワンクリックイベントハンドラをアタッチするだけで、#MainDivにイベントバブルを送り、クリックされたものが#Divであるかどうかを確認してください。

$("#MainDiv").click(function(event){ 
    if (event.target.id === "Div") { 
     // do the thing with Div 
    } 
    else { 
     return false; 
    } 
}); 
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; });

関連する問題