0

関数 before() を使用して、クラス「test2」で div をクリックして複製したいと考えています。クリックすると、元の div のクラス「test2」も削除されます。ユーザーが元の div を再度クリックすると、アラート ('ok') が表示されます。うまく機能していますが、div を n 回複製し、元の div を 1 回クリックすると、alert('ok'); すべて n 回になります。

私のコードは次のとおりです。

<div class="test1 test2">message</div>

<script src="jquery.js"></script>
<script>
$(function () {

function test() {
    $('.test1').click(function(){
            if($(this).hasClass('test2')){
                $(this).before('<div class="test1 test2">message</div>');
                $(this).removeClass('test2');
            }
            else{
                alert('ok');
            }
    test(); 
    });

}

test();

});
</script>

http://jsfiddle.net/manguo_manguo/TNeYk/

4

1 に答える 1

0

これを試してみてください:ここフィドルで

 function test() {
   var i=1;
   $(document).on('click', '.test1', function () {
       if ($(this).hasClass('test2')) {
          $(this).before('<div class="test1 test2">message'+ i++ +'</div>');
          $(this).removeClass('test2')
       } else {
          alert('ok');
       }
   });
}
$(function () {
   test();
});
于 2013-02-26T07:31:06.550 に答える