-1

可能重复:
在javascript中的return语句之后执行语句

我有一个元素,单击时会触发一个选项传输脚本,该脚本将选项从一个<select multiple>元素移动到另一个元素。然后它应该针对更改的内容运行一个函数。唯一的问题是该功能没有运行。

$('#cityadd').click(function() {
    return !$('#ucityone option:selected').remove().appendTo('#ucitytwo');
    runPagination();
});

单击元素时该函数runPagination();未运行#cityadd。我不知道这是语法错误还是什么。同样的设置与我现有的其他实例一起运行。

4

3 回答 3

6

return在第一行有一个语句,该语句将从该行返回,并且不会执行进一步的语句。

runPagination()是一个无法访问的代码。将函数移到返回语句上方,如下所示。

$('#cityadd').click(function() {
    runPagination();
    return !$('#ucityone option:selected').remove().appendTo('#ucitytwo');
});
于 2013-01-03T20:37:25.240 回答
2

这是因为它是在return语句之​​后执行的,这将有效地忽略后面的任何内容,从而runPagination()无法访问。

function PerformX()
{
     return x;
     //Unreachable code here
}

为了实际执行该操作,只需切换它们被调用的顺序:

$('#cityadd').click(function() {
    runPagination();
    return !$('#ucityone option:selected').remove().appendTo('#ucitytwo');
});
于 2013-01-03T20:37:32.180 回答
1

That is because you used return before calling runPagination()

change your code to :

$('#cityadd').click(function() {
    $('#ucityone option:selected').remove().appendTo('#ucitytwo');
    runPagination();
});
于 2013-01-03T20:40:41.080 回答