2

我正在尝试这样的事情

<div onclick="check_update('personal_details') ; showUser(2)">Click me </div>

但只有check_update('personal_details')被调用。单击 DIV 时,我想同时执行两个单独的函数。由于我仍处于学习阶段,因此任何帮助对我来说都非常有用。提前致谢。

4

3 回答 3

7

您不能同时执行两个功能。Web 浏览器中的 JavaScript 是单线程的。

您拥有的代码将按顺序执行函数,前提是第一个代码不会引发异常并终止执行。

如果它确实引发了异常,那么您应该尝试解决它。作为蛮力破解:

try {
    check_update('personal_details') ; 
} catch (e) {
    alert("Oh no! An exception! " + e);
}
showUser(2);

......但首先防止错误显然是一个更好的解决方案!

于 2012-05-08T12:29:49.183 回答
3

你的问题被标记为 jQuery,所以我假设你正在使用它。在这种情况下,您根本不应该使用 onclick 属性。这将是从 jQuery 角度编写代码的正确方法:

<div id="yourId">Click me</div>

<script type="text/javascript">
$('#yourId').click(function(e) {
    e.preventDefault();
    check_update('personal_details'); 
    showUser(2);
});
</script>
于 2012-05-08T12:31:45.983 回答
2

在闭包中使用函数。替换otherFunction为您要调用的第二个函数的名称,一切都应该按预期工作。

<div onclick="(function(){check_update('personal_details'); otherFunction(); })()">Click me </div>
于 2012-05-08T12:28:54.183 回答