Input fields that are dynamically generated do not respond to changes made using .click and .blur methods in jQuery CSS

I'm experiencing an issue with a HTML form where a new input field is generated when a button is clicked, but the dynamically created field is not styled properly.

Below is the HTML form code:

<form id="form">
    <input type="text" id="enter"/><br>
</form>
<button id="add_field" class="button"">Add button</button>

The jQuery script that successfully generates a new field:

$('#add_field').click(function(){
    $('#form').append("<input type='text' id='enter2' />");
});

And here is the JavaScript to style all text fields when clicked:

$('input:text').focusin(function (){
    $(this).css('background-color', '#E3F3FF').css('border', '1px solid #0085F0');
});

$('input:text').blur(function (){
    $(this).css('background-color', '#fff').css('border', '1px solid black');
});

While this styling works for all initially entered fields in the HTML code, it does not apply to dynamically generated fields.

Answer №1

To effectively target dynamic content, utilize the .on method - ensuring that the initial selector encompasses the container at the time of event binding:

$("#container").on("mouseover", "div.item", function (){
    $(this).addClass('highlight');
});

$("#container").on("mouseout", 'div.item', function (){
    $(this).removeClass('highlight');
});

JSFiddle Demo : http://jsfiddle.net/abc123xyz

Answer №2

I believe I have found the answer you are seeking:

http://learn.jquery.com/events/event-delegation/

"Event delegation is a powerful technique that allows for the attachment of a single event listener to a parent element, triggering for all descendants that match a specified selector, regardless of whether those descendants currently exist or will be added in the future"

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

User-friendly Bootstrap Modal Form with Navigation Buttons

As a beginner in bootstrap transitioning from jQueryUI, I am curious if anyone has experience creating a next/previous form interface as an alternative to scrolling through the viewport. In the past, I have used the method described in this article: http: ...

Space in the middle of a body and a div

After extensively searching for a solution to the issue plaguing my website, I found that there was always an annoying gap at the top of the page. Despite trying various solutions, none seemed to work. Upon inspecting the website in Firefox, I discovered t ...

Placing a table within a div causes the div to expand in width beyond 100%

A situation has arisen where a table with a large number of columns (30 columns) is being affected by the white-space:nowrap style set on each th tag, causing the parent div to stretch unnaturally. How can this issue be resolved and allow for a horizonta ...

Tips on halting the current animation and modifying styles upon hovering

Currently, I have a basic label featuring a contact number with a blinking animation. However, the animation is only a simple color transition at this time (see code below). I have managed to successfully pause the animation and revert the text back to it ...

Challenge with form validation

Currently, I am utilizing the jQuery validation plugin to handle form validation. However, I have encountered an issue when using inline labels. Here is an example: <input type="text" name="myinput" value="Enter your ...."> In this specific scenar ...

Setting an interval for a specific function to trigger after a delay of 5 seconds

I'm struggling with setting an interval for the $.get ajax method in my code. Take a look at what I have so far... setInterval(function () { passFunction(jsonData); } ,5); $.get({ url: 'pass.php', success: ...

What is the reason behind the inconsistent behavior of Javascript's Date.getDate() and .setDate() methods?

As a hobbyist coder, I'm facing a challenging problem with building a dynamic HTML/CSS calendar. My goal is to have cells filled in based on today's date. However, when I attempt to add days to fill in another 13 days by looping through HTML elem ...

The height of the href is not displaying correctly when the text-decoration is disabled and it is placed next to

In my design, I have a link positioned next to an image with perfect vertical alignment. Everything looks great when the text has the standard text-decoration, centered vertically and all that. However, as soon as I remove the text-decoration, leaving the ...

Tips for automatically resizing a canvas to fit the content within a scrollable container?

I have integrated PDF JS into my Vue3 project to overlay a <canvas id="draw_canvas"> on the rendered pdf document. This allows me to draw rectangles programmatically over the pdf, serving as markers for specific areas. The rendering proces ...

Activate the SHIFT key

In the input field for user's firstname, I have restricted all keys to a-z and 0-9 only. This restriction is working well, but I also want to allow the SHIFT key so that users can capitalize letters if needed. Despite trying various solutions, I have ...

Creating a variety of Flexslider slideshows on the fly

Check out this snippet of code: <?php foreach ($objVideos as $objVideo) : ?> jQuery('#carousel-<?php echo $objVideo->id; ?>').flexslider({ animation: "slide", controlNav: false, animationLoop: false, ...

Using data attributes for assigning them to a div container - a complete guide!

As I venture into the world of HTML5 and JS, I'm facing some challenges in finding success. My goal is to dynamically load data attributes from "li" elements into a div container, which will provide additional information for a slide within the flexs ...

What is a method to position an <img> on top of text without obscuring the text or resorting to CSS background or text-indent

To view the related code snippet, click on this link: http://jsfiddle.net/Ws8ux/ Is there a way to position the text under the logo without hiding it through display:none or text-indent? I am aiming to bring the image up while keeping the logo in the back ...

challenges surrounding the use of getElementByTagName

Within my webpage, I have implemented two select elements, both containing multiple options. However, I am facing an issue where I can only access the options from the first select box using getElementByTagName("options"), and unable to retrieve the option ...

What is the best way to assign a unique number to every div id that is generated?

I am currently using a django for loop to retrieve data from a query set. As the information is displayed, I would like to have each item wrapped in a div tag with a unique id that increments by 1 for every instance. Is there a way to achieve this directly ...

Achieving Perfect Alignment for Absolutely Positioned Divs in

I'm currently facing an issue where the image I'm trying to center horizontally also moves the parent div downward when I try to vertically center it using top-margin. This is not the desired outcome. If you'd like to see what I mean, I&apo ...

HTML unique flex wrapping

https://i.sstatic.net/ekVr4.png #menu { display: flex; justify-content: space-evenly; align-items: center; margin: 0 5px 0 5px; height: 30px; flex-wrap: wrap; } .menu_item { margin: 0 10px 0 10px; } .menu_item2 { margin: 0 10px 0 10px; } <div id="m ...

Utilizing Chessboard Positions in an if-else Statement with the Chessboard.js Library

I have been attempting to develop a function that utilizes an if-statement to verify whether a chessboard is positioned in a specific arrangement (the one I am using as the starting position) with the assistance of the chessboard.js library I experimented ...

Converting a class with two lists into an MVC 4 controller with Ajax functionality

Recently, I attempted to send a class with two lists via ajax to an MVC controller. Here is the code for the MVC Controller: [HttpPost] public JsonResult AfficherDetailsFacture(AfficheDetails afficheDetailsFacture) { // do some stuff } Below is the ...

Choosing children in jQuery can be tricky, especially when you want to avoid selecting the root element with the same name

I am encountering a challenge with my XML structure where some child elements share the same name as the root element. I am seeking a way to specifically select these child elements without including the root element itself. Despite searching through the j ...