可以说我有一个Web应用程序,该应用程序的页面可能包含4个脚本块-我编写的脚本可能在其中一个块中找到,但我不知道哪个是由控制器处理的。
我将一些onclick事件绑定到按钮,但是我发现它们有时会按我不期望的顺序执行。
onclick
有没有办法确保订单,或者您过去如何处理此问题?
我花了很长时间来概括这种过程,但就我而言,我只关心链中第一个事件侦听器的顺序。
如果有什么用,这里是我的jQuery插件,它绑定一个始终在任何其他事件之前触发的事件侦听器:
更新内联jQuery更改(感谢Toskan)
(function($) { $.fn.bindFirst = function(/*String*/ eventType, /*[Object])*/ eventData, /*Function*/ handler) { var indexOfDot = eventType.indexOf("."); var eventNameSpace = indexOfDot > 0 ? eventType.substring(indexOfDot) : ""; eventType = indexOfDot > 0 ? eventType.substring(0, indexOfDot) : eventType; handler = handler == undefined ? eventData : handler; eventData = typeof eventData == "function" ? {} : eventData; return this.each(function() { var $this = $(this); var currentAttrListener = this["on" + eventType]; if (currentAttrListener) { $this.bind(eventType, function(e) { return currentAttrListener(e.originalEvent); }); this["on" + eventType] = null; } $this.bind(eventType + eventNameSpace, eventData, handler); var allEvents = $this.data("events") || $._data($this[0], "events"); var typeEvents = allEvents[eventType]; var newEvent = typeEvents.pop(); typeEvents.unshift(newEvent); }); }; })(jQuery);
注意事项: