【问题标题】:jQuery mouseenter on paragraph with bold textjQuery mouseenter 在带有粗体文本的段落上
【发布时间】:2013-07-03 15:21:52
【问题描述】:

我有一段带有粗体字的段落

<p style="class1"><b>Some text</b> some other text</p>

以及用于mouseenterclass1 元素的mouseout 事件的jQuery 侦听器

$('class1').mouseenter(function(){
    $(this).addClass("highlight");
});

$('class1').mouseout(function(){
    $(this).removeClass("highlight");
});

highlight 类是一种模拟经典 HTML 选择的样式。

.highlight{
   background-color: blue;
   color: white !important
}

(我没有使用 style1:hover 因为我想以编程方式模拟箭头选择,但这现在并不重要)

所以,我有一些这样的段落:

一些文字一些其他文字

一些文字一些其他文字

一些文字一些其他文字

现在,我的问题是当鼠标光标从粗体文本移动到普通文本(或反之亦然)时,mouseout 事件触发,失去我的假选择但留在同一段落中。如何避免这种行为?

【问题讨论】:

    标签: jquery mouseenter mouseout paragraph bold


    【解决方案1】:

    你必须使用 mouseleave 事件而不是 mouseout..

    $('.class1').mouseenter(function(){
        $(this).addClass("highlight");
    });
    
    $('.class1').mouseleave(function(){
        $(this).removeClass("highlight");
    });
    

    这会解决你的问题..:)

    【讨论】:

      【解决方案2】:

      我不明白这个问题..但是让我建议你...永远不要使用标签!如果你想要一个粗体的文本,在它上面加上一个跨度并使用 css font-weight:bold; ..

      【讨论】:

      • 在这种情况下使用样式化的 span 或 标记是相同的,反正我的段落中有一个孩子。
      • 一般来说,我们应该把样式留给css。特别是 标签,看这里 w3schools.com/tags/tag_b.asp "注意:根据 HTML 5 规范,当没有其他标签更合适时,应将 标签用作最后的手段。HTML 5 规范规定标题应该用

        标签表示,强调的文本应该用 标签表示,重要的文本应该用 标签表示,标记/突出显示的文本应该用 标签表示。提示:您还可以使用 CSS 的“font-weight”属性来设置粗体文本。”
      • 我完全同意你的观点,但在这种情况下它是不相关的,这是一篇关于事件处理和光标范围的帖子,而不是关于样式的。我总是使用跨度或段落来设置样式,但为了懒惰,我在开发时在这里放了一个
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      相关资源
      最近更新 更多