jquery 如何“关闭”或“覆盖”命名函数

3ks5zfa0  于 2022-12-12  发布在  jQuery
关注(0)|答案(1)|浏览(79)

我有以下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);
});

我试图让lightblue类保持在单击状态,但很明显,当我单击时,我需要鼠标离开,它会关闭lightblue类...所以我需要帮助来弄清楚如何覆盖unhighlight类...

qkf9rpyu

qkf9rpyu1#

也许有更好的方法,但我会这样做--你可以用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);
});

相关问题