我在通过jQuery函数返回变量时遇到了问题。
$(document).ready(function () {
var selected = "";
$('.whitetheme').on('click', function () {
$(this).effect("highlight", {}, 2000);
selected = "whitetheme";
return selected;
$('.blacktheme').fadeOut(1500);
$('.redtheme').fadeOut(1500);
})
console.log(selected);
});
我试图在点击后将选中的值更改为“whitetheme”。
现在,log函数返回一个空字符串。
答案 0 :(得分:3)
您正在绑定一个事件处理程序,它将(并且将被调用)更改变量值。但是,在执行console.log
之前,事件不会发生,因此您看不到更新的值。
此外,您的blacktheme
和redtheme
类不会被淡出,因为该代码部分无法访问。
你到底想要达到什么目的?
答案 1 :(得分:2)
尝试稍微更改一下,以便在点击后打开你的console.log。
$(document).ready(function () {
var selected = "";
$('.whitetheme').on('click', function () {
$(this).effect("highlight", {}, 2000);
selected = "whitetheme";
// return selected; don't need this or the next 2 lines won't execute
$('.blacktheme').fadeOut(1500);
$('.redtheme').fadeOut(1500);
console.log("selected: "+selected);
});
// console.log(selected); moved above
});
答案 2 :(得分:0)
继续上面的问题/评论:
$(document).ready(function() {
var selected = "";
$('.whitetheme').on('click', function(){
$(this).effect("highlight", {}, 2000);
selected = "whitetheme";
/*Moved this line*/
console.log(selected);
return selected;
$('.blacktheme').fadeOut(1500);
$('.redtheme').fadeOut(1500);
})
});