
February 27th, 2013, 05:48 PM
|
|
Registered User
|
|
Join Date: Nov 2010
Posts: 6
Time spent in forums: 36 m 2 sec
Reputation Power: 0
|
|
|
jQuery - How to bind focus and blur on new elements
Hi, I am having trouble binding focus and blur to new elements.
I have the following HTML code:
Code:
<div class="ticket">
<input class="firstname" name="firstname[]" title="First Name(s)" value="" />
<input class="lastname" name="lastname[]" title="Last Name" value="" />
<a href="#"><img src="/images/admin/DeleteRed.png" /></a> OR
<a href="#" class="add">Add more</a>
</div>
I then have the following jquery code attached to 'Add more' hyperlink:
Code:
$("body").on("click", "a.add", function() {
var content = $(this).parent('.ticket').html();
var newdiv = $("<div class='ticket'>");
newdiv.html(content);
$(this).parent('.ticket').after(newdiv);
return false;
});
As you can see, all it does is copy the current div and add it straight after.
The input fields within the div tag have the following jquery bound to it:
Code:
$('input:text').on({
focus: function () {
var self = $(this);
if (self.val() == self.attr('title')) {
self.val('');
};
},
blur: function () {
var self = $(this),
val = jQuery.trim(self.val());
if (val == "" || val == self.attr('title')) {
self.val(self.attr('title'));
};
}
}).trigger('blur');
It does seem to copy the div tag and place it right after the current one, however, it does not bind focus or blur to the newly added elements.
What am I doing wrong?
thanks
|