目指すのは、クリックしたときにすべてのリンクを無効にし、サーバーが無効にするコマンドと同じ方法で無効にするまで、すべてのリンクを無効にすることです。jQuery:div内のすべての機能を無効にする方法はありますか?まだすべてを見えるようにしますか?
したがって、すべてのリンクが1つのdivを含んでいるので、私はそれを一時的に無効にすることができます。
どうすればいいですか?
目指すのは、クリックしたときにすべてのリンクを無効にし、サーバーが無効にするコマンドと同じ方法で無効にするまで、すべてのリンクを無効にすることです。jQuery:div内のすべての機能を無効にする方法はありますか?まだすべてを見えるようにしますか?
したがって、すべてのリンクが1つのdivを含んでいるので、私はそれを一時的に無効にすることができます。
どうすればいいですか?
あなただけのデフォルトのリンクの動作を無効にしたい場合は、あなたがdelegate
とevent.preventDefault
の組み合わせを使用することができます。
$('#container').delegate('a', 'click', function(e) {
if (linksDisabled) {
e.preventDefault();
}
});
あなたが他にtrue
またはfalse
に(親スコープで)linksDisabled
を、その後を設定することができます適切なイベントハンドラ。
これらのリンクがJavascriptyのことをしている場合、それはやや難解です。おそらく、各イベントハンドラにif (linksDisabled)
チェックを入れるのが最も簡単でしょう。
これを試してみてください:
$("#YOUR_DIV a").click(function(){
return false;
})
要素に他のイベントハンドラがある場合、他のイベントハンドラが他のイベントハンドラの後に実行される可能性があるため、まったく効果がありません。 – lonesomeday
これは、JavaScriptリンクを無効にする良い方法です。ただし、このイベントハンドラが最初に起動されたことを確認する方法が必要です。 –
は 'でpreventDefault()' 'の代わりにfalseを返すのを使用する利点はありますか;'? –
@Lèsemajesté伝播を続行することができます。私は個人的にそれをより直感的に見つける。さらに、イベントハンドラの最後の部分だけでなく、いつでも呼び出すことができます。これはここでは関係ありませんが、私のコードは一貫しているのが好きです。 – lonesomeday
それは良い点です。私はそれを考えなかった。 –