如何在js/prototype中触发具有特定顺序的事件(onclick)



可能重复:
使用原型触发事件

例如,javascript/prototype中的3个onclick事件。如何强制原型运行转储"first!"、"second!"one_answers"third!"值的警报函数。谢谢,这是你可以c/p:的代码

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>
</head>
<body>
<script type="text/javascript">
//<![CDATA[
document.observe("dom:loaded", function() {
  $("go").observe("click", function() { alert('First!'); });
  $("go").observe("click", function() { alert('Third!'); });
  $("go").observe("click", function() { alert('Second!'); });
  });
//]]>
</script>
<form>
<input id="go" type="button" value="Click me!"  />
</form>
</body>
</html>

事件处理程序是JavaScript中的函数,函数是JavaScript中主要的公民。通常,中间对象包含作为数组的所有处理程序的列表。例如,在jQuery中,data('events')保存事件处理程序。除非原型有一个简单的方法,否则您应该手动获取所有处理程序,对它们进行排序并将它们分配回。

正如@gaby所说,您可以在一开始的标记中使用正确的顺序来绑定它们。

这个怎么样:

var handlers = [func1, func2, func3];
$("go").observe("click", function() { 
    var i = 0, len = handlers.length;
    for(i; i<len;i++)
       handlers[i]();
});

当然也有改进,但

最新更新