如何使用live和trigger一起使用?

时间:2012-05-09 08:10:34

标签: jquery

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

6 个答案:

答案 0 :(得分:7)

你可以像这样触发它:

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

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

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

基本上,实时处理程序绑定到文档元素,因此您需要发送事件

答案 1 :(得分:4)

BIND LIVE EVENTS:

$('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

});

TO TRIGGER:

$('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(),因为它已被弃用。

答案 2 :(得分: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
});

答案 3 :(得分:1)

$(function() {
    $('<parent element selector>').on('click', '<target element selector>', function () {
        // do your stuff
        $('<anchor selector>').trigger('click'); 
    });
});

答案 4 :(得分:0)

使用此:

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

$('a#achTest').trigger('click');

答案 5 :(得分:0)

这是另一种适合我的方式。

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

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

这里的重要部分是:

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