0

私の質問は簡単ですが、私は彼らがうまくいくさまざまな方法を試しました。私は次のコードを持っています。私は新しいものを作成<div>し、それにクラス名テストを与えようとしています。それで、クラステストでこれをクリックする<div>と、アラートを上げようとしています...私が迷子になったのを助けてください...。

$('.item').click(function(){
        if(!isFullscreen){ // MAXIMIZATION
            $boxes = $(this).css('width','100%');
            $boxes.addClass("test");
            //$boxes.id = "test"; 
            $('#content').prepend( $boxes ).masonry( 'reload' );
        }
});

$(".test").click(function(){
    alert("Test");

});

私も以下のコードを試しました:しかし、それらは機能しませんでした

        //$boxes.className="test";
        //jQuery($boxes).attr("id","test");

前もって感謝します...

4

3 に答える 3

3

イベントを委任する必要があります。

$("#content").on('click', '.test', function() {
    alert("Test");
});

クリックした要素にIDを追加するには、次のようにコーディングできます。

this.id = 'test';

複数の要素に同じIDを追加すると、ドキュメントが無効になることに注意してください。

于 2012-10-07T21:54:37.817 に答える
2

最初の関数は、クラスの要素がクリックされtestたときにクラスのメンバーである要素を作成します。item

セクション関数は、test実行時にクラスのすべてのメンバーにクリックハンドラーを追加します。これは、要素がクリックされる前です。item

onメソッドではなくメソッドを使用して、委任イベントclickイベントを作成します(手順については、ドキュメントを参照してください)。

于 2012-10-07T21:54:34.400 に答える
2

divを本体に追加する必要があります...おそらくこれを行う必要があります:

$(body).append('<div id="test" class="test">');
$boxes = $('#test');

そして、あなたはあなたのクリック機能を使用して委任する必要がありますon()

$(".test").click(function(){に変更$('body').on('click', '.test', function(){

于 2012-10-07T21:54:34.270 に答える