Динамическое добавление / удаление класса Jquery - PullRequest
2 голосов
/ 21 мая 2011

Я создаю окно автозаполнения, в которое возвращается предложение, и я пытаюсь добавить / удалить класс "searchsuggestinnerulhighlight" для отдельных ссылок.Вот динамически возвращаемая та

    <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" ... и теперь я изменилсяэто добавить класс и удалить класс, и это не работает. Любые идеи?

Ответы [ 3 ]

5 голосов
/ 21 мая 2011

Изменение:

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

Кому:

$("#" + mocount).addClass("searchsuggestinnerulhighlight");
3 голосов
/ 21 мая 2011
mocount = $(this).attr('id');
$("#" + mocount)

Это серьезно хитрый jQuery!

Во-первых, вам не нужно attr, чтобы получить id.Вы можете получить это с this.id.Это намного, намного быстрее.

Во-вторых, вам не нужно получать id, чтобы получить выборку jQuery, содержащую элемент, по которому щелкнули.Вместо этого просто используйте $(this).

Наконец, как сказал Гейб, используйте addClass вместо add.Итак, в целом:

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

Еще одна вещь - использование значения идентификатора, начинающегося с числа, не допускалось в HTML до HTML5.Его поведение не гарантируется.

0 голосов
/ 21 мая 2011

Я бы поставил это в комментарии, но не могу. Реализуйте изменения loneomeday, но когда он использует $ (this) .id, попробуйте просто использовать this.id, так как 'this' уже должен быть объектом jquery. (Мы не хотим $ ($ (это)).)

...