外部Javascript 在本地Javascript之后运行



我有一个PHP页面,里面有一些Javascript/Jquery代码。

我有这样的东西:

$("#myButton").click(function() {
my_external_function();
other code here...
}

但是my_external_function(包含在外部 js 文件中(似乎在本地代码之后运行。事实上,my_external_function中包含的"return false"被忽略,它继续执行其他本地代码。

我错了什么?

请注意,如果我尝试在本地页面中复制my_external_function的内容,一切正常。

任何建议不胜感激,谢谢!

澄清一下,即使我清空外部函数并留下一行(RETURN FALSE 指令(,也会忽略它,PHP 页面继续运行单击事件的其他代码。

为简单起见,这是有效的(执行已正确停止(:

$("#myButton").click(function() {
return false;
other code here...
}

这不起作用(执行提交(:

$("#myButton").click(function() {
my_external_function();
other code here...
}

外部JS文件的内容现在是:

function my_external_function() {
return false;
}

简单地从内部函数返回 false 不会停止调用函数的执行。 此代码:

$("#myButton").click(function() {
my_external_function();
// other code here...
}
function my_external_function() {
return false;
}

相当于这个:

$("#myButton").click(function() {
false;   
// other code here... (will run)
}

等同于这个:

$("#myButton").click(function() {
return false;  
// other code here... (unreachable)
}

(请注意,在第二个示例中,return true还会停止单击处理程序的执行;一旦函数返回,该函数就完成了。 如果在return语句后有无法访问的代码,许多代码编辑器会将其标记为错误。

如果您希望"此处的其他代码"根本不运行,则可以使用return my_external_function()。 如果您希望它有条件地运行my_external_function()是否返回 true 或 false,您可以这样做

$("#myButton").click(function() {
if (my_external_function()) {
// other code here
return true; // if necessary
} else {
return false; // if necessary
}
})

最新更新