jQuery - 如何'关闭'或'覆盖'命名函数

时间:2011-05-28 03:16:15

标签: jquery javascript-events

您好我有以下HTML:

img class="hoverContact"
img class="hoverContact"
img class="hoverContact"

和jquery代码:

function highlightContact(ev) {
   $(ev).addClass('lightblue');  
}
function unhighlightContact(ev) {
   $(ev).removeClass('lightblue');  
}

$('.hoverContact').live("mouseover", function(){
    highlightContact(this);
});
$('.hoverContact').live("mouseout", function(){
    unhighlightContact(this);
});
$('.hoverContact').live("click", function(){
    highlightContact(this);
});

我正试图保持轻量级的点击,但显然当我点击我需要鼠标离开它关闭了浅蓝色类...所以我需要帮助搞清楚如何覆盖unhighlight类...

由于

1 个答案:

答案 0 :(得分:1)

可能有更好的方法,但我会这样做 - 您可以使用jQuery设置任意属性,而不是通过在随机命名的html属性中粘贴数据来搞砸页面验证或浏览器兼容性。 “正确”的方法是在HTML标记上包含另一个XML命名空间,但我从未见过这样做的实际原因。

$('.hoverContact').attr('custom:on', '0')
.live("mouseover", function(){
    highlightContact(this);
})
.live("mouseout", function(){
    if ($(this).attr('custom:on') == '0') {
      unhighlightContact(this);
    }
})
.live("click", function(){
    $('.hoverContact').attr('custom:on', '0');
    $(this).attr('custom:on', '1');
    highlightContact(this);
});