(function() {
var bgOn;
$(".ContainingBox").on('hover', function() {
function() {
bgOn = $(this).css("background-color");
$(this).css("background-color", "#e5fff8");
}, function() {
$(this).css("background-color", bgOn);
}
});
})();
我想将事件绑定悬停。当我没有将它包装在匿名函数中并使用.hover()
时,此代码工作正常。但是,我们要求不使用全局变量。所以我需要绑定事件!
这不可能吗?
答案 0 :(得分:3)
您的代码有语法错误,特别是on()
不接受多个回调等。
此外,没有原生hover
事件,您应该使用mouseenter
和mouseleave
代替
$(".ContainingBox").on({
mouseenter: function() {
$(this).data('bg', $(this).css("background-color"));
$(this).css("background-color", "#e5fff8");
},
mouseleave: function() {
$(this).css("background-color", $(this).data('bg'));
}
});
使用jQuery' data()
而不是单个变量,会记住每个元素的背景颜色
答案 1 :(得分:0)
试试这个......
(function() {
var bgOn;
$(".ContainingBox").on('mouseover', function() {
function() {
bgOn = $(this).css("background-color");
$(this).css("background-color", "#e5fff8");
}, function() {
$(this).css("background-color", bgOn);
}
});
})();