我在一个表格单元格上发生了2个事件。 1,简单的tr行荧光笔on .hover(on,off)和 2,onclick,它在它下方滑开一个div。
这两个项目都按预期工作。我想要做的是在单击tr时停止.hover函数的第二部分(在mouseout上)触发,以便在打开div时它保持高亮显示。我尝试在该功能上使用该类,但99%的时间,当我的鼠标仍然在它上面时,它会因为hilight而疲劳,因此当我的鼠标离开它时,它会使它恢复到正常的lo-lite状态。
那么,我如何通过.click()调用,停止一个单独的.hover调用的第二个函数部分来运行?
这些函数看起来有点愚蠢,但在我的实际代码中,还有很多事情要发生。所以,这些是行动中被删除的部分。
.hover(
函数(){
$(本).removeClass( 'xhead');
$(本).addClass( 'headerhover');
}
,
功能(){
$(本).removeClass( 'headerhover')
$(本).addClass( 'xhead');
}
);
和此:
function togglediv(id){
$("#"+id).toggle("fast");
}
从以下方式调用:
function loadmenu(id){
var divid = 'div_'+id+'_detail';
togglediv(divid);
}
这是第二次致电:
$('.viewer').click(function(e) {
var id = e.target.id;
loadmenu(id);
}
});
小提琴在工作中受阻......对不起,我不能让它变得更容易。
欣赏这些想法。
它的长短是在.vm点击,粘贴headerhover,杀死mouseout事件从返回到xhead类。否则,如果没有单击,请执行类交换以执行行突出显示。
答案 0 :(得分:1)
简单的方法?在你的click
中输入类似的内容:
$(this).data("sticky", true);
在你的悬停(鼠标输出部分)中检查它:
if (! $(this).data("sticky"))
{
// proceed with hover mouseout code
}
确保您的选择器在各个事件中排列。在上面的代码中,它没有,因此您需要一个更复杂的选择器,如$(this).closest('.xhead').data("sticky", true);
或,您可以在click
本身上定义一个额外的.xhead
事件只是为了处理这种交互(这个点击事件将通过,同时触发两者)。
另请注意,您在td.xhead
的书面代码中选择了hover
,但您的HTML只有tr.xhead
。