0

次のjQueryコードがあります:

$("#btnReset").click(function () {
    ColReorder.fnReset(oTable);
    return false;
});

HTML は次のようになります。

<div style="padding: 5px 5px 1px 0px; float: right" id="globalbutton-row" class="ex">
    <button class="button" type="button" id="btnReset"><%=rb.getString("button.reset")%></button>
    <button class="button" type="button" id="btnDeveloperSampleMenu" onclick="javascript:CallDeveloperSampleMenu()"><%=rb.getString("button.devsamplemenu")%></button>
</div>

「リセット」ボタンで ColReOrder.fnReset 関数を起動したいのですが、何らかの理由でこれが機能しません。

4

3 に答える 3

2

まだ読み込まれていない DOM を参照しないように注意する必要があります。<button>コードが実行される前に が DOM にロードされていない場合、何も起こりません。すべてがロードされたときにコードを実行することで、これを修正できます。

$(document).ready(function() {
  $("#btnReset").click( function () {
    ColReorder.fnReset( oTable );
    return false;
  } );
});

また、<button>AJAX またはその他の方法で追加した場合も、同じ問題が発生します。on()メソッドを使用してこれを修正できます。

$(document).ready(function() {
  $(document).on('click',"#btnReset", function(event) {
    ColReorder.fnReset( oTable );
    return false;
  } );
});
于 2012-12-12T18:54:01.097 に答える
1

イベント委任を使用してみてください。JavaScript が実行されているときに、要素が dom にロードされていない可能性があります。クリックイベントをドキュメントに添付すると、クリックをリッスンし、クリック時にセレクターを検索することでコードが機能します。

$(document).on('click','#btnReset',function () {
  ColReorder.fnReset( oTable );
  return false;
  } );
于 2012-12-12T18:53:38.720 に答える
0

ドキュメントがロードされた後にコードを実行する必要があります。

$(function() {
  $("#btnReset").click( function () {
    ColReorder.fnReset( oTable );
    return false;
  });
});
于 2012-12-12T18:54:13.297 に答える