我的团队正在开发一个Web应用程序, 对于特定元素,我们有一个click事件,该事件在两个js文件中定义。
$("#manage_teams_register_btn").live("click",function(){
// codes here
})
现在我将html元素附加到一个js文件中,另一个我从db获取数据并附加它。 是否可以在这些实时点击功能中设置一些优先级,以便在另一个之前调用一个!?
我无法使用诸如将一个实时点击的所有内容放入一个函数并通过其他js或任何其他解决方案中定义的实时点击调用它的解决方案,我需要在这些实时点击功能中设置优先级。有没有办法可以做到这一点??
答案 0 :(得分:4)
此模型可能有用
$("#manage_teams_register_btn").live("click",function(){
function1();
function2();
});
function function1(){
}
function function2(){
}
只保留一个click event
,否则会严重损害可读性代码。
答案 1 :(得分:1)
jQuery观察者部分使用队列来显示附加的事件。所以,如果你写
$("#manage_teams_register_btn")
.on("click.firstEventNamespace", function () {
console.log("Hello");
})
.on("click.secondEventNamespace", function () {
console.log("World!");
});
你会得到“HelloWorld!”在您的控制台中没有问题=)
但是如果你从不同的文件中附加你的事件,你应该考虑使用一些模式,比如控件的抽象工厂。
答案 2 :(得分:0)
jQuery中的事件处理程序始终按照绑定的确切顺序执行。 Ref.
您只需确保绑定事件的不同代码将它们绑定在同一元素上,并按照您希望执行处理程序的顺序执行(包含)它们。