gwtquery — отсутствует метод removeClass()?

Я использую gwtquery для управления страницами, я нашел в jQuery, который я могу использовать:

$('body').removeClass().addClass(myClass);

Но похоже, что gwtquery не предоставляет тот же метод removeClass(), у него есть только removeClass(String... classes). Это не совсем полезно, если я хочу удалить все классы элемента, не зная заранее имен.

Кто-нибудь знает аналог этого метода?


person Mike    schedule 30.09.2012    source источник
comment
Хорошая находка, код запроса GWT должен вести себя так же, а не генерировать исключение.   -  person logan    schedule 30.09.2012


Ответы (2)


Короткий ответ:

  • Используйте setClassName("") в класс элемента GWT

    $('gwt-Label').widgets().get(0).getElement().setClassName("")

  • Или установите атрибут className напрямую

    $("gwt-Label").attr("className","")

Длинный ответ:

Итак, я просмотрел две реализации, и они, похоже, делают две разные вещи.

  1. jQuery заменяет свойство className элемента dom, если нет классов для удаления.
  2. GQuery просто перебирает классы и удаляет их один за другим, делегируя их классу Element dom GWT. За кулисами используется свойство className.
person logan    schedule 30.09.2012
comment
Отлично, метод setClassName настолько удобен, что способ GQuery, как мне кажется, более лаконичен. - person Mike; 30.09.2012

Я исправил проблему в gquery. Мы следуем правилу, что gquery должен вести себя так же, как jquery, так что это была ошибка в библиотеке. Спасибо, что осознали это.

Обновите свой проект до последней версии gwtquery-1.2.1-SNAPSHOT.jar.

person Manolo Carrasco Moñino    schedule 01.10.2012
comment
Привет, Спасибо за вашу замечательную работу над gquery. Я думаю, что есть еще несколько api (из jquery1.7), которые не полностью поддерживаются в gquery, а это означает, что метод реализован, но параметр может быть не полностью совместим с jquery (обычно отсутствует). Например, проверьте api.jquery.com/show, api.jquery.com/fadeIn, api.jquery.com/slideDown с соответствующим gquery API. - person Mike; 02.10.2012
comment
Да, в gquery отсутствуют многие сигнатуры методов, присутствующие в jquery, это связано с тем, что в java требуется немного больше усилий для написания перегруженных методов, мы постарались реализовать наиболее часто используемые случаи. Обычно мы добавляем эти методы, если кто-то просит об этом. - person Manolo Carrasco Moñino; 02.10.2012
comment
В случае с show() стоит добавить параметры timeout и function. В других случаях отсутствует параметр easing, gquery поддерживает easing в методе animate(), поэтому любой, у кого возникла эта проблема, может использовать анимацию в качестве обходного пути. В любом случае, если вы пропустите какой-либо метод, который вам нужен в вашем проекте, откройте запрос или отправьте патч, мы будем рады обновить библиотеку. - person Manolo Carrasco Moñino; 02.10.2012
comment
Я вижу это, спасибо за ваш вклад. - person Mike; 02.10.2012