2009-03-13 18 views
0

私はASP.NET MVC RC2にインストールしました.JQuery 1.3.1ライブラリも使用しています。
私が1.2.6ライブラリを使用する前は、
私たちのアプリケーションは、そのライブラリの下でうまく動作します。
しかし、今私は奇妙な問題があります。
私たちは、AJAX呼び出しの結果で構築するグリッドビューを持っています。
結果が返されて、非表示の行をクローンしてテーブルに新しい行を追加します。
JQuery 1.3.1で動的に生成された行が見つかりません

JQueryから生成されたHTMLは、タグにパラメータを追加しています。 これらはJQuery12345678 = "null"の形式です。 これらはすべて同じ名前です。 テーブルの先頭には、テーブルのすべての行を選択/選択解除するチェックボックスがあります。 これは、テーブルの行を反復することによって行われます。

$("#selectAllCheckbox").click(function() { 
    var checked = this.checked; 
    $("#dgNewTasks tbody tr").find(':input[type="checkbox"]').each(function() { 
     this.checked = checked; 
    }); 
}); 

ここで、新しいライブラリを使用すると、チェックボックスは設定されなくなります。 IE Developer Toolsを使ってHTMLをチェックしました。 私の行からJQuery12345678 = "null"パラメータを削除した場合。それはうまく動作します。

誰かが私に何をしなければならないか教えてもらえますか?

+0

あなたは、関連するHTMLスニペットの例をお願いできますか? Mozilla FirefoxはJavaScriptエラーコンソールを提供していますので、イベントを発生させてエラー/例外があるかどうか調べてください。 – Mork0075

答えて

1

あなたのHTMLを確認する必要があります。それは問題を明らかにするかもしれない。一方で、あなたのコードを大幅に簡素化することができます。

$("#selectAllCheckbox").click(function() { 
    var checked = this.checked; 
    $("#dgNewTasks tbody tr :checkbox").attr("checked", checked); 
}); 
0

あなたはready()イベントハンドラでこの瞬間に(たとえばclick()のため)イベントハンドラをアタッチするので、これは動作しませんには任意の動的に作成された行はありません。したがって、動的に作成された行が作成された後にclick()または他のイベントハンドラを添付します。

0

あなたの代わりに.clickの.liveを使用する必要があるようですね:

$("#selectAllCheckbox").live(function() { 
    var checked = this.checked; 
    $("#dgNewTasks tbody tr").find(':input[type="checkbox"]').each(function() { 
     this.checked = checked; 
    }); 
}); 
関連する問題