4

Ajax 経由でいくつかのコンテンツを読み込んでいます。click読み込みが完了したら、アンカー要素でイベントをトリガーしたいと考えています。しかし、これはうまくいかないようです。triggerと をlive一緒に使用するにはどうすればよいですか?

4

6 に答える 6

7

次のようにトリガーできます。

<div id="test">CLICK</div>​

$('#test').live('click', function() {
    window.alert("works");            
});

$(document).trigger({ 
    type:   'click',
    target: $('#test')[0]
});

基本的に、ライブ ハンドラーはドキュメント要素にバインドされるため、そこにイベントを送信する必要があります

于 2012-05-09T08:19:01.533 に答える
4

バインドライブイベント:

$('PARENT_OF_SOME_ELEMENT').on('EVENT_NAME', 'SOME_ELEMENT', function() {

    // SOME_ELEMENT will be the target

});

またはdelegate();を使用します。

$('PARENT_OF_SOME_ELEMENT').delegate('SOME_ELEMENT', 'EVENT_NAME', function() {

    // SOME_ELEMENT will be the target

});

トリガーするには:

$('SOME_ELEMENT').EVENT_NAME(); //eg. $('SOME_ELEMENT').click();

また

$('SOME_ELEMENT').trigger('EVENT_NAME'); //eg. $('SOME_ELEMENT').trigger('click');

イベント内でイベントをトリガーするには

$('AN_EVENT_HOLDER').EVENT_NAME(function() {

   $('SOME_ELEMENT').EVENT_NAME();  // or $('SOME_ELEMENT').trigger('EVENT_NAME'); as illustrated above

});

例えば

$('.i_have_an_event').on('click', function() {
   $('SOME_ELEMENT').click();
});

ノート

  1. ここSOME_ELEMENTに、PARENT_OF_SOME_ELEMENT有効なセレクターがあります。

  2. .live()非推奨になっているため、使用しないでください。

于 2012-05-09T08:15:31.440 に答える
3

.live()メソッドはjQ1.6.8から非推奨になりましたが、次のメソッドを使用してください.on()

$(document).on('click','a.myAnchor', function(){
    // do your stuff
});

$('#yourElement').on('click', function(){
  $('a.myAnchor').click(); // trigger the dynamically created 'anchor' stuff
});
于 2012-05-09T08:13:48.100 に答える
1
$(function() {
    $('<parent element selector>').on('click', '<target element selector>', function () {
        // do your stuff
        $('<anchor selector>').trigger('click'); 
    });
});
于 2012-05-09T08:25:14.467 に答える
0

これを使って:

$('a#achTest').live('click', function(){
 // some code
});

$('a#achTest').trigger('click');
于 2012-05-09T08:16:09.443 に答える
0

これは私のために働く別の方法です。

$('#test').live('click', function() {
    alert("It works!");            
});

$('#test')[0].click();

ここで重要な部分は次のとおりです。

$('#test')[0].click();
于 2014-12-18T08:00:24.177 に答える