如何在javascript中设置函数的优先级
我的团队正在开发一个web应用程序, 对于一个特定的元素,我们有一个click事件,它在两个js文件中定义如何在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的所有内容放入一个
$("#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在流运行其内容之前等待流被清除