Bug Tracker

Opened 9 years ago

Closed 9 years ago

#14289 closed bug (cantfix)

Altering button text in change handler prevents next click event in Chrome

Reported by: joed Owned by: joed
Priority: undecided Milestone: None
Component: unfiled Version: 1.9.1
Keywords: chrome blink Cc: mkwst
Blocked by: Blocking:


In the change event handler for an input field, I change the text of a button. If the change event gets fired because I click on the button (i.e., enter text in the field and then immediately click the button), the click for the button is not fired. This is different from how it behaves using raw javascript, as shown in this jsfiddle:


It works fine, both raw and jQuery, in Firefox 22 and IE 10, but not Chrome 28, on a PC. I have not tried any others.

Change History (5)

comment:1 Changed 9 years ago by dmethvin

Owner: set to joed
Status: newpending

Seems related to the alert() call but not a jQuery bug. Can you reduce the problem further? This works consistently for example: http://jsfiddle.net/AwdQa/10/

comment:2 Changed 9 years ago by joed

Status: pendingnew

It is the altering of the button that causes the problem. I updated your jsfiddle to change the button text instead of appending "changed ", and the problem comes back (again, only in Chrome).


comment:3 Changed 9 years ago by dmethvin

Oh duh, yeah, like the ticket says. :)

Seems like it can be reproed with basic DOM functions tho, does this break the same both ways?


comment:4 Changed 9 years ago by joed

Excellent! You are correct - the change from 'innerHTML' to 'textContent' in the basic DOM code makes the difference. I'll report it to the Chrome folks.

Thanks! I don't see any way for me to mark this as closed, so I'll leave that to you.

comment:5 Changed 9 years ago by dmethvin

Cc: mkwst added
Keywords: chrome blink added
Resolution: cantfix
Status: newclosed

Great. I'll mark this cantfix, if you could put a link to the Chrome ticket here once you've filed it that would be helpful. Thanks!

Note: See TracTickets for help on using tickets.