如果下拉列表中已存在'onchange'事件,如果我绑定另一个事件,它何时会触发?

时间:2010-09-30 14:20:46

标签: javascript jquery

有一个'onchange'事件,在我无法控制的下拉列表中使用内联javascript。

在onready事件中,如果我绑定另一个onchange事件,哪个会先触发?这将是一个有保障的命令吗?

我希望我在内联js onchange事件后开火。

2 个答案:

答案 0 :(得分:2)

在大多数实现中,事件按照指定的顺序触发。但是,此订单无法保证。 ECMAScript规范没有定义这个。

答案 1 :(得分:0)

是否可以替换最初的onchange方法。

var select = document.getElementById('myElementId');
var proxy = select.onchange;
select.onchange=null;
var wrapper = function (e) {
  if (!window.event) { 
   // for compatibility on non-IE browsers where event may be used inline
   // untested
   window.event = e; 
  }
  // executes the original handler in the scope of the original element
  proxy.apply(select); 
  // new function you want to run
  myFn();
};
if (select.addEventListener) {
  select.addEventListener('change', wrapper ,false);
}
else {
  select.attachEvent('onchange', wrapper);
}

我将此作为概念证明。原始元素标记是什么样的?根据原始onchange中引用的变量,它可能适合您的问题,也可能不适合您。

现场演示:http://jsbin.com/ufohu4