Dynamic Buttons With Attributes Through Jquery
Alright, I can generate a button with code of the form var temp = ''; $('#myDiv').append(temp).click(
Solution 1:
Here's how to do it the jQuery way:
var $button = $('<button/>', {
type: 'button',
'class': 'dynBtn',
id: 'anID',
text: 'Here!',
click: function() {
window.alert('Hello! My id is '+ this.id);
}
});
$button.appendTo('#myDiv');
Solution 2:
That's because .append()
doesn't return the appended element, you can use .appendTo()
in this case:
$(temp).appendTo('#myDiv').on('click', function() {
window.alert("Hello! My id is " + this.id);
});
If you are adding many elements to the DOM, it would be better to use event delegation instead.
$('#myDiv').on('click', '.appendedElement', fn);
Solution 3:
Use on(), do like this:
$(document).ready(function(){
//in here you put the event for all elements with dynBtn class
$(document).on("click",".dynBtn",function(){dynButtonClicked();});
});
functiondynButtonClicked (aButton) {
window.alert("Hey, my id is " + aButton.id);
};
//and append the button anytime you wantvar temp = "<button type=\"button\" class=\"dynBtn\" id=\"anID\">Here!</button>";
$('#myDiv').append(temp);
Post a Comment for "Dynamic Buttons With Attributes Through Jquery"