如何在javascript中设置函数的优先级

如何在javascript中设置函数的优先级,javascript,jquery,html,Javascript,Jquery,Html,我的团队正在开发一个web应用程序, 对于一个特定的元素,我们有一个click事件,它在两个js文件中定义 $("#manage_teams_register_btn").live("click",function(){ // codes here }) 现在,我在一个js文件中附加html元素,在另一个js文件中,我从db获取数据并附加它。 是否可以在这些live click函数中设置一些优先级,以便一个函数在另一个函数之前被调用 我不能使用像将一次live click的所有内容放入一个

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

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

// codes here

})
现在,我在一个js文件中附加html元素,在另一个js文件中,我从db获取数据并附加它。 是否可以在这些live click函数中设置一些优先级,以便一个函数在另一个函数之前被调用


我不能使用像将一次live click的所有内容放入一个函数并从其他js或任何其他解决方案中定义的live click调用它这样的解决方案,我需要在这些live click函数中设置优先级。有什么方法可以做到这一点吗?

这种模式可能会有所帮助

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

function function1(){

}

function function2(){

}

只维护一个
点击事件
,否则会严重破坏代码的可读性。

此模型可能会有所帮助

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

function function1(){

}

function function2(){

}

只维护一个
单击事件
,否则它会严重破坏代码的可读性。

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

$("#manage_teams_register_btn")
    .on("click.firstEventNamespace", function () {
        console.log("Hello");
    })
    .on("click.secondEventNamespace", function () {
        console.log("World!");
    });
您将在控制台中获得“HelloWorld!”,就像没问题一样=)


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

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

$("#manage_teams_register_btn")
    .on("click.firstEventNamespace", function () {
        console.log("Hello");
    })
    .on("click.secondEventNamespace", function () {
        console.log("World!");
    });
您将在控制台中获得“HelloWorld!”,就像没问题一样=)


但是,如果您将事件从不同的文件附加起来,则应该考虑使用一些模式,例如控件的抽象工厂。在jQuery中,

事件处理程序总是按照绑定的顺序执行。


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

jQuery中的事件处理程序总是按照绑定它们的顺序执行


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

这取决于它们使用的jQuery版本。这是一个新项目吗?是的,我们可能会切换到.on(),这取决于他们使用的jQuery版本。这是一个新项目吗?是的,我们可能会切换到.on(),可能您必须在ajax调用函数后添加setTimeout,以确保第二个函数在ajax完成后运行。函数jax();setTimeout(函数(){nonAjaxFunction();});是的,@VovaLando所说的是正确的。请记住异步策略。如果函数1涉及异步任务,请在函数1中调用函数2(成功回调),以确保优先级。设置超时并不总是可靠的。@2-Stroker Yes在某种意义上是异步的,仅返回成功。如果选择设置超时,则在超时中指定多少时间??您永远不知道请求何时完成:)我使用设置超时的原因是因为,setTimeout wo time在流运行其内容之前等待流被清除可能您必须在ajax调用函数之后添加setTimeout,以确保第二个函数在ajax完成后运行。函数jax();setTimeout(函数(){nonAjaxFunction();});是的,@VovaLando所说的是正确的。请记住异步策略。如果函数1涉及异步任务,请在函数1中调用函数2(成功回调),以确保优先级。设置超时并不总是可靠的。@2-Stroker Yes在某种意义上是异步的,仅回拨成功。如果选择设置超时,则在超时中指定多少时间??您永远不知道请求何时完成:)我使用setTimeout wo'time'的原因是因为,setTimeout wo time在流运行其内容之前等待流被清除