Pull to refresh

Comments 34

Скорее всего просто шибко торопились к юбилею выпустить 1.4, а теперь баги латают.
Иногда, лучше за неделю после релиза, залатать не фатальные баги и выпустить апдейт чем, ждать еще пол-года пока их внутренний qa найдет (как показывает практика всех багов ему всё равно не найти)…

Поэтому и молодцы — оперативно сработали…
Какое тут отличие от ховера? Это же просто захламление. Или я чего-то не понимаю и ошибаюсь?
mouseenter/mouseleave поддерживаются нативно в IE, и очень хочется, чтобы они появились в других браузерах. А hover — это просто синтаксический сахар для mouseenter + mouseleave.
mouseleave = mouseout
mouseenter != mouseover
mouseenter != mouseover
Вот это не совсем понял. В чем их разница?
mousenter срабатывает единожды, при ВХОДЕ курсора в область объекта
mouseover срабатывает каждый раз при ДВИЖЕНИИ курсора в области объекта
вроде так
Не так. Если пройти по ссылке в моём комментарии выше, то можно найти правильный ответ.
Mouseover and mouseout also fire when the user mouses over or out of a child element of the element you registered the events on. Mouseenter and mouseleave don’t.
да точно, забыл про чайлды
а что с ним было?
И откуда у Вас уверенность, что проблема в $.getJSON(), а не в выдаче друпала, кривых руках или еще каких-то факторах?
У меня с этим методом не было сложностей.
getJSON теперь сначала пытается парсить полученные данные нативным браузерным парсером вместо убогого eval().

а нативные парсеры валидируют полученный json. подозреваю, что ваша проблема именно в этом — проверьте здесь
Strict JSON parsing, using native JSON.parse (jQuery.ajax() Documentation, Commit 1, Commit 2, Commit 3)

jQuery 1.3 and earlier used Javascript’s eval to evaluate incoming JSON. jQuery 1.4 uses the native JSON parser if available. It also validates incoming JSON for validity, so malformed JSON (for instance {foo: «bar»}) will be rejected by jQuery in jQuery.getJSON and when specifying “json” as the dataType of an Ajax request.

Отсюда jquery14.com/day-01

Может в этом проблема?
Попробуйте просто сделать $.ajax, в качестве contentType указать text\plain и потом ответу с светвера в ручную сделать Eval:
var o = eval('(' + response + ')');
странно что он для лайва не сделали что — то вроде того
$('#some_element').live().width(20);
почему только события можно навешивать?
Я согласен, что в контексте вызова цепочки jQuery методов .live() не возвращает $(this).

НО.

Обратите внимание на свой пример: $('#some_element').live().width(20);
По хорошему .live() назначают некоторому css-классу а не уникальному #ID. Иначе, произойдет логический парадокс двух одинаковых уникальных #ID.

$('.some_element_class').live();

Таким образом .width(20) не будет отработан при внедрении новых элементов в DOM. Из чего следует, что .width() нужно вызывать в момент DOM-модификации:

$('#someone').load('new-elements.php', function(){
$(this).find('.some_element_class').width(20);
});


Я не против вашего примера, я согласен что так должно работать. Я только попытался объяснить свою точку зрения, как один из возможных вариантов.

Хотя могли и забыть просто сделать return $(this).
Дело в том, что live работает следующим образом: «навешивает» eventlistener на document, соответствующий вашему событию и передает в него селектор, который вы указали в $(«selector»).live(...). А eventlistener уже вызывает вашу функцию, когда событие проходит вверх от child'ов до document.
Вот live()(и die()) по-моему самая глупая глупость жквери. Можно же было навешивание событий на динамически создаваемые ноды внедрить в bind()(unbind()) и не париться с отслеживанием своего хтмла.
Скажите, а у одного меня проблемы с совместимостью jQuery 1.4 и jQuery UI?
Кстати, если на сайте api.jquery.com набрать некую последовательность, то вас перебросит на ejohn.org/apps/hero/ :)
В Хроме евент .click срабатывает два раза, при одном клике. Аналогично в сафари.
Sign up to leave a comment.

Articles