1

現在、クリック可能なリンクを含む行を含むテーブルがあります。ユーザーが任意のテーブル行からリンクをクリックすると、JQUery の UI モーダル ダイアログがポップアップし、クリックされたリンクの親 tr に「ハイライト」というクラスを追加します。私ができるようにしたいのは、JQuerys UI ダイアログが閉じられたときに、このクラスを行から削除することです。これを達成する方法を知っている人はいますか?

ロードイベントは次のようになります

$(document).ready(function() {
        $("#dialog").dialog({
            autoOpen: false,
            height: 170,
            width: 350,
            center: false
        });

        $('.getData').click(function(e) {
            getResults($(this).attr('id'));
            $(this).parent().parent().addClass("highlight");
            $("div#dialog").dialog('open').dialog('option', 'position', [e.clientX, e.clientY]);
            return false;
        });
    });

ありがとう

4

2 に答える 2

1

たぶん、このようなものがあなたが探しているものです:

$(document).ready(function() {
    $("#dialog").dialog({
        autoOpen: false,
        height: 170,
        width: 350,
        center: false,
        close: function(event, ui) { 
            $("table tr").removeClass("highlight");
        }
    });

    $('.getData').click(function(e) {
        getResults($(this).attr('id'));
        $(this).parent().parent().addClass("highlight");
        $("div#dialog").dialog('open').dialog('option', 'position', [e.clientX, e.clientY]);
        return false;
    });
});

クラスが強調表示されている行が複数ある場合は、メソッドにグローバル変数を設定して、$('.getData').click...メソッドから参照できるようにすることをお勧めしますclose

于 2009-11-20T17:27:26.223 に答える
1

クラスのハイライトを含む行が常に 1 つしかない場合は、次のように使用できます。

$("#dialog").dialog({
    autoOpen: false,
    height: 170,
    width: 350,
    center: false,
    close: function(event, ui) {
        $('table .highlight:first').removeClass('highlight'); 
        // A bit faster in theory
    }
});
于 2009-11-20T17:28:48.110 に答える