1

jsbin リンク: http://jsbin.com/axevid/2 <- Webkit ブラウザー (Chrome または Safari) を使用して開きます

通常のボタンを無効にすると、すべてのイベントも無効になります。カスタム ボタンのカスタム タグ (プロジェクトの要件の一部) を作成しました。しかし、ボタンが無効になっているときにバインドされたイベントを無効にし、有効にしたら元に戻すにはどうすればよいですか?

Javascript MVC を使用しています。イベントを無効にする機能を見たと思いますが、それがどこにあったか忘れました。

編集: コードはプラグインのようなもので、すべてのカスタム ボタンで動作するはずです。つまり、バインドされた各イベントに if ステートメントを含めたくありません。何か案は?ありがとう。

4

3 に答える 3

0

これは動作します: http://jsbin.com/axevid/3

以下の部分を変更しました。

$(document).delegate('abutton', 'click', function(e){
  if($(this).attr('disabled')){
    e.preventDefault();
    return;
  }
  alert("Custom button");

});
于 2012-03-21T19:23:48.960 に答える
0

Does you mean (as I understood from your request)

$(function() {
$("abutton").each(function() {
if($(this).attr("disabled")) {
e.preventDefault();
return;
});
});
于 2012-03-21T19:25:02.837 に答える
0

コントロールを作成するときは、防止したいイベント用のイベント リスナーも追加する必要があります ("click"および"keypress"、おそらく)。次に、ハンドラーで、event. stopImmediatePropagation()他のユーザーがイベントを表示できないようにする場合に呼び出します。

例えば:

btn.addEventListener("click", function(event) {
    if (btn.disabled) {
        event.stopImmediatePropagation();
    }
});
于 2012-03-21T19:23:01.340 に答える