2017-03-29 10 views
0

段落の最初のクリックを動的にクリックしたいが動作しないようにしたい。クリックイベントが追加後に機能しない

$(document).ready(function() { 
 
    $(".newclass").click(function() { 
 
    var append_code = '<a href="google.com" class="hrefclick">Youre clicked</a>'; 
 
    $('body').append(append_code); 
 
    $(".hrefclick").click(); 
 

 
    $(document).on('click', '.hrefclick', function(e) { 
 
     alert("yess! You're clicked"); 
 
     // do whatever 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="newclass"> 
 
    Hit me! 
 
</p>

js Fiddle

+2

正常に動作しますあなたのコードは、それ自体が説明とは無関係なタイトルとは全く無関係と思われます。ここでは正確に何をしようとしていますか? –

+0

クリック1回でアラートを呼び出さないようにするには –

+0

'.hrefclick'要素の内部の' on() 'イベントハンドラを削除してください –

答えて

2

あなたは自分の行の順序を変更する、委任後click()をトリガする必要があります。

$(document).ready(function() { 
 
    $(".newclass").click(function() { 
 
    var append_code = '<a href="google.com" class="hrefclick">Youre clicked</a>'; 
 
    $('body').append(append_code); 
 

 
    $(document).on('click', '.hrefclick', function(e) { 
 
     alert("yess! You're clicked"); 
 
     // do whatever 
 
    }); 
 
    $(".hrefclick").click(); 
 
    
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="newclass"> 
 
    Hit me! 
 
</p>

+0

ありがとう@DaniPは働いています:) –

+0

嬉しいです@RushilPachchigar – DaniP

0

$(document).ready(function() { 
 
    $(".newclass").click(function() { 
 
    var append_code = '<a href="google.com" class="hrefclick">Youre clicked</a>'; 
 
    $('body').append(append_code); 
 
    $(".hrefclick").click(); 
 

 
    $(document).on('click', '.hrefclick', function(e) { 
 
     alert("yess! You're clicked"); 
 
     // do whatever 
 
    }); 
 
    $('.hrefclick').trigger('click'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="newclass"> 
 
    Hit me! 
 
</p>

0

あなたは一つのことを除いて、正しいすべてをやっている - あなたは、クリック自体の後に2番目のクリックのイベントハンドラを宣言しています。したがって、2回目のクリックがトリガされると、まだハンドラが宣言されておらず、警告が表示されません。 私はそれを下に並べ替えました。以下のスニペットを実行しようとしています。

$(document).ready(function() { 
 
    $(".newclass").click(function() { 
 
    var append_code = '<a href="google.com" class="hrefclick">Youre clicked</a>'; 
 
    $('body').append(append_code); 
 
     
 
     //on click event handler should be declared first before clicking 
 
    $(document).on('click', '.hrefclick', function(e) { 
 
     alert("yess! You're clicked"); 
 
     // do whatever 
 
    }); 
 
    
 
    $(".hrefclick").click(); 
 

 
    
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="newclass"> 
 
    Hit me! 
 
</p>

関連する問題