我从JQuery开始。当我想在函数中传递String作为参数时,有时它不会工作,我不知道为什么......
这是一个例子:
$(document).ready(test());
function test() {
$('path[secteur]').each(function () {
if ($(this).attr('id') == ("23C01")) {
id = ($(this).attr('id'));
afficher(id);
}
})
}
function afficher(mo) {
document.getElementById("test").innerHTML = "<p id=" + mot + " onclick='tester(" + mot + ")'> step 1</p>";
}
function tester(verbe) {
document.getElementById(verbe).innerHTML = "step 2";
}
在这个例子中,它可以很好地用于&#34; afficher&#34;但它不适用于&#34; tester&#34;。当我尝试单击生成的HTML时,我在参数列表&#34;之后收到错误:&#34; Uncaught SyntaxError:missing)
任何人都知道为什么?
答案 0 :(得分:0)
如果在程序上下文中调用函数,则会有所不同:
var test = 2;
test++;
test = domymath( test );
alert( test );
或者,如果你通过函数回调来调用函数:
var test = 2;
test++;
test = domymath( test, alert );
如果在程序上下文中调用它,可以将()
中的参数/值传递给函数,但如果将函数作为回调调用,则无法通过它们。
因为对于回调,您只定义应该调用的函数的名称。
所以在你的情况下使用:
$(document).ready( test );
// calls test();
$(document).ready( function () {
test( one, two );
});
// calls test( one, two );
答案 1 :(得分:0)
$(document).ready(test());
- test
立即执行。整个代码很糟糕。