Javascript jQuery单击事件问题

Javascript jQuery单击事件问题,javascript,jquery,events,dynamic,click,Javascript,Jquery,Events,Dynamic,Click,您好,我最近问了一个关于动态生成链接的问题,有人友好地给了我一个有效的答案。但是,经过更详细的研究,我需要的功能略有不同 下面的代码切换段落的高亮显示类,该段落对应于由单独函数生成的链接。这基于3个鼠标事件: $("#hi-4").live("mouseover mouseleave click", function(){ $("p#p-4").toggleClass("highlighted"); }); 这非常有效,但是如果单击相关链接(直到单击另一个链接),我希望高亮显示的类保持

您好,我最近问了一个关于动态生成链接的问题,有人友好地给了我一个有效的答案。但是,经过更详细的研究,我需要的功能略有不同

下面的代码切换段落的高亮显示类,该段落对应于由单独函数生成的链接。这基于3个鼠标事件:

$("#hi-4").live("mouseover mouseleave click", function(){
    $("p#p-4").toggleClass("highlighted");
});
这非常有效,但是如果单击相关链接(直到单击另一个链接),我希望高亮显示的类保持不变。当前,它为列出的每个事件切换,如果单击,则不会保持高亮显示。我曾尝试为每个事件创建单独的函数,并尝试为每个事件以不同的组合使用
.addClass
,.removeClass`,但我无法使其仅在单击时保持高亮显示。非常感谢

编辑:


下面是一个示例的jshiddle链接,谢谢你的意思是希望高亮显示一直持续到用户单击其他内容为止

像这样的行为


你可能想要这样的东西:

$("#hi-4").live("mouseover mouseleave", function(){
    if(!$("p#p-4").hasClass("clicked")) {
        $("p#p-4").toggleClass("highlighted");
    }
});

$("#hi-4").live("click", function() {
    $("p#p-4").addClass("clicked").addClass("highlighted");
});

$("a:not(#hi-4)").live("click", function() {
    $("p#p-4").removeClass("clicked").removeClass("highlighted");    
});

感谢您的回复,这是我正在寻找的功能(加上鼠标悬停/鼠标离开效果),不幸的是,这段代码不起作用。根据您的示例,该段落不会保持突出显示,如果您滚动并滚动了多次事件未正确触发,也不会保持突出显示。还有其他想法吗?thanks@tcnarss如果没有HTML,就有点难说了。你能在fiddle上发布你的简化标记并在这里发布链接吗?抱歉,这是一个尽可能简化的示例,正如你所看到的(在#p-2段),mouseover和mouseleave事件工作正常,但click事件似乎没有正确添加类。。任何帮助都将不胜感激,它一直困扰着我day@tcnarss这就是你要找的吗该代码上的事件绑定只在一个元素上起作用。这非常有效,感谢您的帮助。我注意到插件有很多返回错误;声明。因此,click事件被终止。这似乎是正确的解决方案,它适用于mouseover/leave事件,但click事件仍然不起作用。id为“#hi-4”的链接是由一个单独的函数创建的,我的印象是.live方法可以解决这个问题,除了单击事件之外,一切似乎都正常。很难发布完整的示例,因为链接是从图像滑块动态生成的缩略图。编辑:您的示例工作得很好,尽管在单击链接时查看了我的代码,但似乎没有应用clicked类。此外,我正在使用jQ 1.4.4。这可能是问题所在吗?嗯,jQ 1.4.4不应该是问题所在。我已经更新了JSFIDLE,因此可以动态添加#hi-4。
$("#hi-4").live("mouseover mouseleave click", function(){
    $('p.highlighted').remove(); //remove all the highlighted classes. 
    $("p#p-4").toggleClass("highlighted");
});
$("#hi-4").live("mouseover mouseleave", function(){
    if(!$("p#p-4").hasClass("clicked")) {
        $("p#p-4").toggleClass("highlighted");
    }
});

$("#hi-4").live("click", function() {
    $("p#p-4").addClass("clicked").addClass("highlighted");
});

$("a:not(#hi-4)").live("click", function() {
    $("p#p-4").removeClass("clicked").removeClass("highlighted");    
});