0

複数のテーブルを含む div があります。各テーブルには、テーブルを削除する関数を呼び出す削除ボタンがあります。テーブルは、日付の昇順/降順で並べ替えることもできます。削除機能は機能しますが、テーブルがソートされている場合は機能しません。

JSFiddleデモはこちら

削除ボタンはこんな感じ。

 <button id="6" class="delete">X</button>

この関数には、「delete」クラスのクリック イベント リスナーがあります。現在、デバッグ目的でアラートを使用してIDのみを表示しています。

$(".delete").click(function () {
    alert($(this).attr("id"));
});

$(this)ソート後に機能しない理由は、セレクターを使用して ID 属性を取得し、ソート後に十分に具体的ではないためだと思われます。

テーブル ID を削除関数に渡すためにさまざまな方法を試しましたが、うまくいきません。

4

3 に答える 3

3

並べ替え時にコンテンツを再追加し、.delete要素を動的にします。そのためには、委任されたイベント ハンドラーが必要です。

$("#meetingTable").on('click', ".delete", function () {
    alert(this.id);
});

フィドル

于 2013-04-08T15:44:23.840 に答える
0

この行の直後に、ボタンの並べ替え関数内の削除関数に追加のコピーまたはコールバックを配置します

    sortUsingNestedText($('#meetingTable'), "table", $(this).data("sortKey"));

私はそれが動作することをテストしました。

于 2013-04-08T15:48:00.190 に答える
-1

変更してみてください

$(".delete").click(function () {

$(".delete").on("click", function(){

これにより、DOM 操作の後でも、jQuery はその要素のクリックをリッスンできます。

于 2013-04-08T15:44:05.337 に答える