0

我的团队正在开发一个 Web 应用程序,对于一个特定元素,我们有一个在两个 js 文件中定义的点击事件。

$("#manage_teams_register_btn").live("click",function(){

// codes here

})

现在我在一个 js 文件中附加 html 元素,在另一个文件中我从 db 获取数据并附加它。是否可以在这些实时点击功能中设置一些优先级,以便先调用另一个!?

我不能使用解决方案,比如将一次实时点击的所有内容放入一个函数中,然后从其他 js 中定义的实时点击或任何其他解决方案中调用它,我需要在这些实时点击函数中设置优先级。有没有办法我们可以做到这一点?

4

3 回答 3

4

这个模型可能有帮助

$("#manage_teams_register_btn").live("click",function(){
        function1();
        function2();
});

function function1(){

}

function function2(){

}

只维护一个click event,否则它会严重破坏代码的可读性。

于 2013-08-20T07:10:47.937 回答
1

jQuery 观察者部分使用队列来显示附加的事件。所以如果你写

$("#manage_teams_register_btn")
    .on("click.firstEventNamespace", function () {
        console.log("Hello");
    })
    .on("click.secondEventNamespace", function () {
        console.log("World!");
    });

你会得到“HelloWorld!” 在你的控制台中没有问题=)

但是如果你从不同的文件中附加你的事件,你应该考虑使用一些模式,比如你的控件的抽象工厂。

于 2013-08-20T07:18:31.273 回答
0

jQuery 中的事件处理程序总是按照它们被绑定的确切顺序执行。参考。

您只需要确保绑定事件的不同代码将它们绑定在同一个元素上,并且它们按照您希望处理程序执行的顺序执行(包含)。

于 2013-08-20T07:26:14.247 回答