javascript - 有没有办法在不使用全局变量的情况下在 jquery 的 hover() 中的两个函数之间共享变量?

标签 javascript jquery jquery-ui namespaces global-variables

我的代码是这样的:

quickbarcolor = $("#quick-bar a").css("color");
$("#quick-bar a").hover(function () {
  if ($(this).css("color") != quickbarcolor) quickbarcolorhover = $(this).css("color");
 V$(this).animate({ color: quickbarcolorhover },400);
}, function() {
  $(this).animate({ 'color': quickbarcolor},400)}  
);

它工作正常,但它依赖于全局变量在 hover() 中的两个函数之间共享颜色。我对全局变量一无所知,但我认为除非必要,否则最好避免使用它们,尽管我知道函数之间共享值是它们的用途。我仍然想看看是否有人知道更好的方法。

最佳答案

一个选项是使用 data-* 将您的值存储在正在动画的 DOM 元素上属性。这就是我的意思:

$.data($("#quick-bar a"), "col", $("#quick-bar a").css("color"));

$("#quick-bar a").hover(function() {
    var self = $(this);
    var col = $.data(self, "col");
    if ($(this).css("color") != col) {
         $.data(self, "col", self.css("color"));
    }

    self.animate({
        color: col
    }, 400);

    $.data(self, "col", self.css("color");
}, function() {
    $(this).animate({
        'color':  $.data($(this), "col");
    }, 400)
});​

关于javascript - 有没有办法在不使用全局变量的情况下在 jquery 的 hover() 中的两个函数之间共享变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660484/

相关文章:

javascript - 如何获取总天数 Multidatepicker MDP

javascript - 如何使用jquery通过id获取动态元素值

html - 为什么元素在 jquery-ui sortable 中重叠底部边框?

javascript - 添加变量名称而不是其值,javascript

javascript - 同时运行 jquery 事件

php - 从MySQL数据库获取数据而不刷新

javascript - 选中的选项未正确保存

javascript - 如何使用 jQuery 访问存储在数组中的元素?

jquery-ui - 使 jQuery UI 可拖放一次只接受一个可拖动

javascript - 将数据传递到 jQuery UI 对话的规范方法是什么?