Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use live and trigger together?

Tags:

jquery

I am loading some content via Ajax. After the load completes I want to trigger a click event on an anchor element. But this doesn't seem to work. How can I use trigger and live together?

like image 338
www.amitpatil.me Avatar asked Dec 06 '22 14:12

www.amitpatil.me


2 Answers

You could trigger it like this:

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

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

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

​ Basically, live handlers bind to the document element, so that's where you need to send the event

like image 150
izb Avatar answered Jan 02 '23 23:01

izb


BIND LIVE EVENTS:

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

    // SOME_ELEMENT will be the target

});

or using 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();

or

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

TO TRIGGER AN EVENT WITHIN AN EVENT

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

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

});

for example

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

NOTE

  1. Here SOME_ELEMENT and PARENT_OF_SOME_ELEMENT are valid selectors.

  2. Don't use .live() because it has been deprecated.

like image 40
thecodeparadox Avatar answered Jan 03 '23 01:01

thecodeparadox