I did everything I could to make it happen, but without success.
The problem is that I create an element on runtime then bind a function to the element like the following code:
$(document).ready(function() {
$('.rem').click(function() {
$("body").append('<a id="runtime" href="javascript:void(0);">runtime</a>');
});
$('#runtime').bind('click', func_name());
});
//End of doc
function func_name() {
alert('I got it!');
}
In the HTML code I have a label like below:
<div id="body">
<label class="rem">click me</label>
</div>
My second attempt
$(document).ready(function() {
$('.rem').click(function() {
$("body").append('<a id="runtime" href="javascript:void(0);">runtime</a>');
});
$('#runtime').bind('click',function() {
alert($(this).text());
});
});
//End of doc
HTML code:
<div id="body">
<label class="rem">click me</label>
</div>
Change
$('#runtime').bind('click',func_name());
to
$('#runtime').live('click',func_name);
or (as of jQuery 1.7):
$('#runtime').on('click',func_name);
Two things to note:
func_name() to func_name. You don't want to call the function when you bind the handler - you just want to reference it.bind won't do you any good, because #runtime doesn't exist until after you've clicked .rem. That's why you need either live or on (depending upon your jQuery version).And just for good measure: here's a good reference on why you should be using jQuery.on anyway.
You don't want to run the function at the point in the code, so remove the ():
$('#runtime').bind('click', func_name);
If you're using jQuery 1.7+, though, you should either use .on():
$('#runtime').on('click', func_name);
or use a .click() handler directly:
$('#runtime').click(func_name);
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