(function() {
var bgOn;
$(".ContainingBox").on('hover', function() {
function() {
bgOn = $(this).css("background-color");
$(this).css("background-color", "#e5fff8");
}, function() {
$(this).css("background-color", bgOn);
}
});
})();
I want to bind an event for hover. This code worked fine when I did not wrap it in the anonymous function, and used .hover()
. However, we have a requirement to not use global variables. So i need to bind the event!
Is this not possible?
Your code has syntax errors, specifically on()
does not accept multiple callbacks etc.
Also, there is no native hover
event, you should use mouseenter
and mouseleave
instead
$(".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'));
}
});
Using jQuery's data()
, and not a single variable, will remember the background color for each element
try this....
(function() {
var bgOn;
$(".ContainingBox").on('mouseover', function() {
function() {
bgOn = $(this).css("background-color");
$(this).css("background-color", "#e5fff8");
}, function() {
$(this).css("background-color", bgOn);
}
});
})();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.