Side navigation
#13782 closed bug (wontfix)
Opened April 16, 2013 12:04PM UTC
Closed April 16, 2013 03:44PM UTC
Uncaught exception in event handler will prevent subsequent script executing
| Reported by: | caikanxp | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.9.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
Uncaught exception in event handler will prevent subsequent script executing.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<button id="dom">DOM attached</button>
<button id="jq">jQuery attached</button>
<script type="text/javascript">
<!--
function log(msg) {
console.log(msg);
$('<div>').text(msg).appendTo('body');
}
with ($('#dom')[0]) {
addEventListener('click', function() {
log('DOM 1');
});
addEventListener('click', function() {
null.log('DOM 2'); // throw an exception
});
addEventListener('click', function() {
log('DOM 3');
});
}
$('#jq').click(function(e) {
log('jQuery 1');
}).click(function(e) {
null.log('jQuery 2'); // throw an exception
}).click(function(e) {
log('jQuery 3');
});
//-->
</script>
Chrome 26
jQuery 1.9.1
Click button "DOM attached", all 3 handlers will be called. Output:
jQuery 1 [Uncaught Error] jQuery 2
Click button "jQuery attached", the last handler will not run. Output:
jQuery 1 [Uncaught Error]
IE attachEvent() has similar results, but only in an opposite execution order.
jsfiddle: http://jsfiddle.net/dAKJY/
Attachments (0)
Change History (1)
Changed April 16, 2013 03:44PM UTC by comment:1
| resolution: | → wontfix |
|---|---|
| status: | new → closed |
In order to continue subsequent callbacks, jQuery would have to catch the error, which is not a good solution. If an error is acceptable, a try/catch can be implemented by the user.
http://jsfiddle.net/timmywil/dAKJY/1/