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?
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
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
Here SOME_ELEMENT
and PARENT_OF_SOME_ELEMENT
are valid selectors.
Don't use .live()
because it has been deprecated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With