0

JQuery の選択に問題があります。ユーザーがテーブル内の行をクリックしたときにロジックを処理するクリック ハンドラーがあります。ただし、これらの行の一部がクリックされると、クリック ロジックで無効なデータが検出され、グレー表示にしたいと考えています。これを行うには、適切な CSS クラスを追加してテキストを灰色にします (そうでなければ無効にします)。

私の基本的な構造は次のようなものです:

$('#tableInfo tr').live('click', function(){

    function doStuff(){
        //Ajax call
        $.ajax({
        ...
        ...
        )}.success(function(){
            ...
        } else {
            var target = $(event.target);
            target.addClass('disabled');
        }
    });
});
var information = $(#misc-information)
doStuff(information)

それが少なくとも基本的な考え方です。ブロック内のものが気になりelseますが、思ったように機能していません。この種のロジックを処理する方法について調査を行ったところ、 event.target は、イベントの現在のオリジン (無効にしたいクリックされた行) を選択するために探していたものとまったく同じように見えました。イベント ハンドラー内にネストされており、イベント ターゲットを選択していますが、これは何もしないようで、その理由がわかりません。

どんな助けでも感謝します。

4

1 に答える 1

1

イベント オブジェクトが渡されておらず、ターゲットのスペルが間違っています

$('#tableInfo tr').live('click', function(event){ // event param here

    function doStuff(){
        //Ajax call
        $.ajax({
        ...
        ...
        )}.success(function(){
            ...
        } else {
            var target = $(event.target); // typo here
            target.addClass('disabled');
        }
    });
});
于 2013-11-13T18:07:29.900 に答える