如何编写一个jQuery函数,以便它返回一个我可以在函数外部访问的值?我做了类似的事情但是当我试图在函数外部访问它时,它说“未定义”:
$(document).ready(function(){
function add(y, z) {
$('p').click(function() {
x = y + z;
console.log(x); // shows 3
return x;
});
}
var sum = add(1, 2);
console.log(sum); // shows "undefined"
});
答案 0 :(得分:4)
这应该有效。不确定为什么在那里添加click
事件
$(document).ready(function(){
function add(y, z) {
x = y + z;
console.log(x); // shows 3
return x;
}
var sum = add(1, 2);
console.log(sum);
});
答案 1 :(得分:2)
简单回答 - 你做不到。
由.click()
注册的方法作为Javascript事件循环的一部分异步调用。
您的add
函数根本没有否返回值。
如果你想要做的是创建一个jQuery样式实用程序函数,而不是一个作用于元素的方法,你会这样做:< / p>
(function($) {
$.add = function(y, z) {
return y + z;
}
})(jQuery);
用法:
var x = $.add(1, 2);
答案 2 :(得分:2)
function add(y, z) {
$('p').click(function() {
x = y + z;
console.log(x); // shows 3
return x;
});
return y + z;
}
答案 3 :(得分:0)
在这种情况下,该函数是一个匿名回调函数,在click事件发生时调用。你设置它的方式,add(x, y)
的功能是为
标签上的点击事件创建一个新的处理程序。
答案 4 :(得分:0)
我不知道为什么会在事件中添加点击事件。它应该单独处理。根据我的说法,代码应该看起来像这样。
$(document).ready(function() {
function add(y, z) {
var x = y + z; // good to make it local scope
console.log(x); // shows 3
return x;
}
var sum = add(1, 2);
document.write(sum); // shows "undefined"
});