动态添加/删除类 Jquery

发布于 2024-11-09 07:30:09 字数 870 浏览 5 评论 0原文

我正在创建一个自动建议框,其中返回了建议,并且我正在尝试向各个链接添加/删除“searchsuggestinnerulhighlight”类。这是动态返回的 ta

    <DIV id="searchsuggestinner">
    <UL id=searchsuggestinnerul>
    <LI>
    <A href="#" id="1" class = "hoverme" onMouseDown="searchsuggestSubmit('appalachian trail');">appalachian trail</A>
   </LI>
   </UL>
   </DIV>

这是我的 jQuery:

 $(".hoverme").live("mouseover mouseout", function(event) {
    if ( event.type == "mouseover" ) {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
       mocount = $(this).attr('id');
       $("#" + mocount).addClass("searchsuggestinnerulhighlight");
    } else {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
    }
 });

最初我有 .css("background-color"... 现在我将其更改为添加类和删除类,但它不起作用。有什么想法吗?

I am creating an autosuggest box that has a of suggestion returned to it, and I am trying to add/remove the class "searchsuggestinnerulhighlight" to individual links. Here is the dynamically returned ta

    <DIV id="searchsuggestinner">
    <UL id=searchsuggestinnerul>
    <LI>
    <A href="#" id="1" class = "hoverme" onMouseDown="searchsuggestSubmit('appalachian trail');">appalachian trail</A>
   </LI>
   </UL>
   </DIV>

And here is my jQuery:

 $(".hoverme").live("mouseover mouseout", function(event) {
    if ( event.type == "mouseover" ) {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
       mocount = $(this).attr('id');
       $("#" + mocount).addClass("searchsuggestinnerulhighlight");
    } else {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
    }
 });

Originally I had .css("background-color"... and now I've changed it to add class and remove class and it does not work. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

踏雪无痕 2024-11-16 07:30:09

更改:

$("#" + mocount).add("searchsuggestinnerulhighlight");

至:

$("#" + mocount).addClass("searchsuggestinnerulhighlight");

Change:

$("#" + mocount).add("searchsuggestinnerulhighlight");

To:

$("#" + mocount).addClass("searchsuggestinnerulhighlight");
极度宠爱 2024-11-16 07:30:09
mocount = $(this).attr('id');
$("#" + mocount)

这是非常狡猾的 jQuery!

首先,您不需要 attr 来获取 id。您可以通过 this.id 获取它。这要快得多。

其次,您不需要获取 id 来获取包含单击元素的 jQuery 选择。只需使用 $(this) 即可。

最后,正如 Gabe 所说,使用 addClass 而不是 add< /代码>。所以,总而言之:

$(this).addClass('searchsuggestinnerulhighlight');

但还有一件事——在 HTML5 之前的 HTML 中不允许使用以数字开头的 ID 值。其行为不受保证。

mocount = $(this).attr('id');
$("#" + mocount)

That's seriously dodgy jQuery!

First, you don't need attr to get the id. You can get it with this.id. This is far, far quicker.

Second, you don't need to get the id to get a jQuery selection containing the clicked element. Just use $(this) instead.

Finally, as Gabe has said, use addClass rather than add. So, all in all:

$(this).addClass('searchsuggestinnerulhighlight');

One other thing, though -- using a ID value starting with a number was not allowed in HTML before HTML5. Its behaviour is not guaranteed.

春花秋月 2024-11-16 07:30:09

我想把这个放在评论中,但我不能。实现 lonesomeday 的更改,但是当他使用 $(this).id 时,尝试仅使用 this.id,因为“this”应该已经是一个 jquery 对象。 (我们不需要 $($(this))。)

I would put this in a comment, but I can't. Implement lonesomeday's changes, but when he uses $(this).id, try just using this.id as 'this' should already be a jquery object. (We don't want $($(this)).)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文