Experiencing difficulties with implementing jQuery Focus and Blur on multiple inputs with the same class

Check out the fiddle I created: http://jsfiddle.net/44zAy/11/

The current functionality is almost there, but when you click inside the first input and then try to click inside the second one, the first one closes. The same thing happens if you click the x button.

What I'm aiming for is to keep the input open even when clicking inside another one, only closing it when moving focus away from it rather than on focusing on a different input. Is this achievable?

Below is the code snippet:

var inputWdith = '185px';
var inputWdithReturn = '68px';

jQuery('.resize-close').hide();

jQuery(".resize-input").on('focus', function() {
 jQuery(this).animate({
  width: inputWdith
 },400);
 jQuery(this).promise().done(function(){
  jQuery(this).next('.resize-close').show();
 });
}).bind('blur', function() {
 jQuery(this).animate({
  width: inputWdithReturn
 },500);
 jQuery(this).next('.resize-close').hide(); 
});

jQuery('.resize-close').click(function(){
  jQuery(this).prev('.resize-input').animate({
  width: inputWdithReturn
 },500);; 
});

Answer №1

If you're looking for a fast solution to your code issue, try utilizing the event.relatedTarget method: http://jsfiddle.net/WD2CM/

The issue arises when clicking on the second input triggers the 'blur' event for the first input. A simple fix is to verify if event.relatedTarget != null. If there is a relatedTarget, then halt the execution of the 'blur' event for the first input.

However, I strongly recommend considering a complete overhaul of this code :)

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

The significance of having spaces in the PATH for npm

Attempting to set up gulp, but encountering the following error: module.js:471^throw err : cannot find module 'C:\c\Users\Joe's Steezy Laptop\AppData\Roaming\npm\node_modules\gulp-cli\bin\gul ...

What does arguments[0] represent when using the execute_script() method with a WebDriver instance in Selenium using Python?

I'm currently in the process of crawling specific pages that catch my interest. In order to do so, I need to eliminate a particular attribute from an HTML element - specifically, the 'style' attribute is what I aim to remove. To achieve this ...

The character replacement function does not seem to be functioning properly in DialogFlow following the use of

Is there a way to replace commas with colons in the 'setTime' result? I attempted to create another variable and then use the replace() method, but it resulted in an error message stating "Webhook call failed. Error: 500 Internal Server Error". ...

Validating the Javascript on my report page

I am struggling to implement JavaScript validation for a report on my table. My JavaScript skills are not strong, and although I have server-side validation in place, I need client-side validation as well. The structure of my page is as follows: <tr> ...

Advantages of using index.js within a component directory

It seems to be a common practice to have an index file in the component/container/module folders of react or angular2 projects. Examples of this can be seen in: angular2-webpack-starter react-boilerplate What advantages does this bring? When is it recom ...

What is the best way to distinguish between an IPFS URL or path (content-addressed) and a regular URL (location-addressed)?

I need to retrieve nft-metadata for the nfts that have been added to my platform. Some of these Nfts have ipfs-urls as their tokenURIs and I am looking for a way to distinguish them from regular urls (location-addressed urls). Previously, I used is-ipfs, ...

Every time I hit the refresh button, I find myself forcefully logged out

After switching from using localStorage to cookies in my React JS web app, I am experiencing an issue where I get logged out whenever I refresh the page. Even though the cookies are still stored in the browser, the authentication process seems to be failin ...

Displaying a dropdown selection that showcases two object properties lined up side by side

I need the select option dropdown values to display employee names along with their titles in a lined up format. For instance, if my values are: Bob Smith Director Mike Kawazki HR Jane Doe Manager I want them to be shown as: Bob Smith Director Mi ...

Preventing Event Propagation in Angular HTML

I am encountering an issue with stopPropagation, and I need assistance with implementing it in HTML and TypeScript for Angular. The problem is that the dialog opens but also triggers a propagation. Below is my code snippet in HTML: <label for="tab-two ...

I am looking to dynamically assign CSS classes to elements in my HTML document. Additionally, my project utilizes Angular 5 and Bootstrap version 3.3.7

I am currently in the process of generating a table using data obtained from a JSON. Due to the potential for a large amount of data, I have implemented a loop to create all the rows within the table. My goal is to enable users to click on any specific row ...

Tips for adding a unique number to a text?

Currently, I am working on a task that involves adding a random number to a string and then interpreting it as a variable name within my innerHTML. var a = Math.floor((Math.random() * 3) + 1); var description1 = "This is description 1"; var description2 ...

Guide on incorporating HTML data into an existing webpage

Requesting assistance in creating an HTML page that features a dynamic drop-down menu. The drop-down should trigger a list to appear upon selection, which can be sourced from either a text file or plain HTML document. The envisioned functionality involves ...

Is there a way to hide the <v-otp-input> field in a Vue.js application?

For more information, please visit https://www.npmjs.com/package/@bachdgvn/vue-otp-input <script> export default { name: 'App', methods: { handleOnComplete(value) { console.log('OTP completed: ', value); } ...

Mobile Safari is having troubles loading CSS

After a long time of using in-line CSS directly on the page, I finally decided to consolidate it all into one file for my own sanity. Initially, I attempted the standard <link rel="stylesheet" href="URL"> approach and it loaded successfully, alt ...

Can you explain the role of the %GetOptimizationStatus function within a JavaScript file executing in Node.js?

Currently, I am delving into an article that discusses optimization strategies and includes the following code snippet: //Function that contains the pattern to be inspected (using an `eval` statement) function exampleFunction() { return 3; eval(&a ...

Guide to ensuring a jQuery modal box appears above other page elements

As I work on a jQuery popup modal box, I am faced with the issue of it pushing all other content aside when called. The toggleSlide() function is being used and works fine, but the layout problem remains. Attempts to rectify this by using position: relati ...

Is there a way to conceal the scrollbar while still permitting scrolling?

I'm interested in creating a custom scrollbar, but in order to do so I need to hide the default scrollbar while still allowing scrolling functionality. I've attempted: overflow-y:hidden; but this method hides the scrollbar and prevents scrolli ...

Utilizing production and development configuration files in Angular and JavaScript with Webpack

I'm currently working with Webpack and Angular, trying to find a way to inject/use variables based on whether it's in development or production mode. Although I have Webpack set up to detect the environment (prod or dev), I am facing an issue wi ...

Firefox struggles to properly position tables that exceed a width of 767 pixels when using Bootstrap

I have designed a basic website featuring a Bootstrap navbar with tabs. Each tab displays a table. You can view the layout here. Everything functions correctly in Chrome 45 and IE 11 on Windows 8.1. However, when using Firefox, the tables are positioned ...

Div with a vertical line

Check out this jsFiddle link Struggling to get a "vertical rule" to span the entire width of its container in a div, specifically adjusting the border-right of a nested div. Margins have been modified, even tried margin-top: 20px; in the #vr, but no luck. ...