Javascript 如何在select元素中对两个更改事件进行优先级排序
对于一个select元素,我有两个更改事件处理程序。让我们调用函数Func1和Func2。当我初始化这些处理程序时,我先执行Func1,然后执行Func2,但是当select元素中发生更改事件时,会在Func1之前调用Func2 有没有办法将这两个功能划分为优先级。只是想让您知道每个函数的初始化在不同的脚本中 这是我的代码布局 脚本1:Javascript 如何在select元素中对两个更改事件进行优先级排序,javascript,jquery,Javascript,Jquery,对于一个select元素,我有两个更改事件处理程序。让我们调用函数Func1和Func2。当我初始化这些处理程序时,我先执行Func1,然后执行Func2,但是当select元素中发生更改事件时,会在Func1之前调用Func2 有没有办法将这两个功能划分为优先级。只是想让您知道每个函数的初始化在不同的脚本中 这是我的代码布局 脚本1: $("select#myDropdownlist").change(function(){ $(this).parents('form:first').
$("select#myDropdownlist").change(function(){
$(this).parents('form:first').submit();
// form submit sends post request to update an object which is in session
}
脚本2:
$("select#myDropdownlist").change(function(){
Send an ajax request and return json result based on the changes happened to the object in script1 function
}
虽然我按顺序初始化了这些函数,但它并没有按顺序调用函数。由于它首先调用Func2,但对象尚未更新,因此结果不正确,因此它随后将调用Func1并更新对象,但由于Func2已返回基于对象以前版本的结果,因此已太迟
还请注意,Script1非常通用,它应该适用于任何表单数据输入页面,其中Script2特定于特定页面,我想在仅在页面中更改select元素后再做一件事。这意味着我不能在Func2中调用Func2
任何帮助都将不胜感激
问候
Behnam Divsalar事件后排序函数的简单答案是添加一个单独的事件处理函数,逐个运行这两个函数
$("select#myDropdownlist").change(function(){
callFirstFunction();
callSecondAjaxFunction();
}
对于事件后的order函数,简单的答案是添加一个事件处理程序函数,该函数逐个运行这两个函数
$("select#myDropdownlist").change(function(){
callFirstFunction();
callSecondAjaxFunction();
}
将第一个函数的内容放入方法中如何:
$("select#myDropdownlist").change(function(){
submitPostFunction1();
}
submitPostFunction1 = function() {
//do function 1 stuff here
}
然后在更具体的函数-函数2中:
$("select#myDropdownlist").change(function(){
$("select").unbind();
submitPostFunction1();
//do function 2 stuff
$("select").bind("change", function() {
submitPostFunction1();
})
}
请记住,我在函数2中使用了$(“select”),因为您说这是一个更通用的调用,因此这意味着您不会在第一个函数调用中使用id。将第一个函数的内容放入一个方法中如何:
$("select#myDropdownlist").change(function(){
submitPostFunction1();
}
submitPostFunction1 = function() {
//do function 1 stuff here
}
然后在更具体的函数-函数2中:
$("select#myDropdownlist").change(function(){
$("select").unbind();
submitPostFunction1();
//do function 2 stuff
$("select").bind("change", function() {
submitPostFunction1();
})
}
请记住,我在函数2中使用了$(“select”),因为您说这是一个更通用的调用,所以这意味着您不会在第一个函数调用中使用id。事件没有指定以任何特定顺序触发 如果您想要一个特定的顺序,您需要从元处理程序调用它们,或者通过从另一个调用一个来链接它们。不过,从长远来看,元处理程序更灵活
$("select#myDropdownlist").change(function(){
firstHandler();
secondHandler();
}
或
未指定事件以任何特定顺序激发 如果您想要一个特定的顺序,您需要从元处理程序调用它们,或者通过从另一个调用一个来链接它们。不过,从长远来看,元处理程序更灵活
$("select#myDropdownlist").change(function(){
firstHandler();
secondHandler();
}
或