Javascript Jquery未绑定事件onload

Javascript Jquery未绑定事件onload,javascript,jquery,global-variables,Javascript,Jquery,Global Variables,我想为悬停绑定一个事件。当我没有将该代码包装到匿名函数中并使用.hover()时,该代码运行良好。但是,我们要求不使用全局变量。所以我需要绑定事件 这不可能吗 试试这个 (function() { var bgOn; $(".ContainingBox").on('hover', function() { function() { bgOn = $(this).css("background-color"); $(this).css("backgroun

我想为悬停绑定一个事件。当我没有将该代码包装到匿名函数中并使用
.hover()
时,该代码运行良好。但是,我们要求不使用全局变量。所以我需要绑定事件

这不可能吗

试试这个

(function() {
var bgOn;
$(".ContainingBox").on('hover', function() {
    function() { 
    bgOn = $(this).css("background-color");
            $(this).css("background-color", "#e5fff8");
      }, function() {
      $(this).css("background-color", bgOn);
      }
 });
})();

您的代码有语法错误,特别是
on()
不接受多个回调等。
此外,没有本机的
悬停
事件,您应该使用
mouseenter
mouseleave

(function() {
       var bgOn;
       $(".ContainingBox").on('mouseover', function() {
          function() { 
             bgOn = $(this).css("background-color");
             $(this).css("background-color", "#e5fff8");
          }, function() {
               $(this).css("background-color", bgOn);
             }
       });
 })();
使用jQuery的
data()
,而不是单个变量,将记住每个元素的背景色


没有
hover
事件,jQuery确实在某个时候创建了奇怪的
hover()
方法,但您要寻找的是真正的
mouseenter
mouseleave
。请注意,您的标题有误导性。有一个名为“onload”的事件,您所说的jQuery没有绑定该事件。你的意思是,当页面加载时,它没有绑定事件,即页面的“在(空间)加载”(隐含),这更多的是一个注释而不是一个答案,更不用说它已经被saidis使用了。数据,从技术上来说是一个全局变量?@christopherclark-不,从技术上讲它不是一个全局变量,因为数据存储在全局
窗口.jQuery
下的某个对象中。
$(".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'));
    }
});