4

我正在通过 Ajax 加载一些内容。加载完成后,我想click在锚元素上触发一个事件。但这似乎不起作用。我怎样才能使用triggerlive在一起?

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

});

或使用委托();

$('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_ELEMENTPARENT_OF_SOME_ELEMENT是有效的选择器。

  2. 不要使用.live(),因为它已被弃用。

于 2012-05-09T08:15:31.440 回答
3

至于.live()从 jQ 1.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 回答