0

だから私は文字通りイライラしています。これを約30分間修正しようとしましたが、まだ失敗しています。

チェックボックスがチェックされているときに機能をアクティブにしたいkeyup()、そうでなければ、チェックボックスがチェックclick()されていないときに機能をアクティブにしたい。しかし、チェックすると動作しますが、チェックを外すと、キーアップとクリックが使用されます...

誰かが私を助けることができれば、私はそれを感謝します!

私のコード:

HTML:

<input type="checkbox" id="saut" onchange="isChecked()">

JavaScript:

function isChecked() {
  var checked = $('input#saut').is(':checked');
  if (checked == true) {
    $('button#searchbutton').attr("disabled", true);
    $('input#searchquery').keyup(function () {
      alert("omfg keyup!");
      return;
    });
  } else {
    $('button#searchbutton').attr("disabled", false);
    $('button#searchbutton').click(function () {
      alert("omfg button!!");
      return;
    });
  }
}
4

5 に答える 5

1

私はこれをします:

$('#saut').change(function(){ // let's enable/disable the button on (un)check
    $('#searchbutton').prop("disabled", this.checked);
});
$('#searchquery').keyup(function () {
    if (!$('#saut').is(':checked')) return; // do nothing if not checked
    alert("omfg keyup!");
});
$('#searchbutton').click(function () {
    if ($('#saut').is(':checked')) return; // do nothing if checked
    alert("omfg button!!");
});

また、代わりにpropを使用し、セレクターを消去したことにも注意してくださいattr(ID で選択する場合は、セレクターに ID 以外のものを入れないでください)。

于 2013-04-09T14:32:03.623 に答える
0

これらの両方のイベントをバインドして、後でチェックボックスをチェックしてみませんか

 $('input#searchquery').keyup(function () {
     if($("#saut").is(":checked")){
          alert("omfg keyup!");
     }
 });

 $('button#searchbutton').click(function () {
     if(!$("#saut").is(":checked")){
         alert("omfg button!!");
     }
 });

イベントをバインドしてからアンバインドするか、jquery を使用することもできますone

于 2013-04-09T14:31:45.950 に答える
0

コードで行っていることは、イベント リスナーを登録することです。その実際のコードを起動しないでください。リスナーがアクティブでなくなったときにリスナーを登録解除するコードはありません。それを行うこともできますが、リスナーを 1 回バインドし、ハンドラーにチェックを追加する方が、おそらくより適切です。

function searchKeyup() {
    if(!$('#saut').is(':checked')) { return; }
    // keyup code
}

function searchClick() {
    if($('#saut').is(':checked')) { return; }
    // click code
}

$(function() {
    $('#searchquery').keyup(searchKeyup);
    $('#searchbutton').click(searchClick);
});

ボタンの無効化と有効化も行っているため、次のようにすることもできます。

$('#saut').change(function() {
   var checked = $(this).is(':checked');
   $('#searchbutton').prop('disabled', checked);
   $('#searchquery').toggleClass('disabled', !checked);
});

$(document).on('click', '#searchbutton:not(:disabled)', function() {
   // button click
});

$(document).on('click', '#searchquery:not(.disabled)', function() {
   // keyup
});
于 2013-04-09T14:31:47.813 に答える