Ответ 1
Лучшая функция, на мой взгляд, позволяет выполнять функции в сеттерах:
jQuery('li.selected').html(function(i, li) {
return "<strong>" + li + "</strong>";
});
Много кода, требующего $.each, теперь можно удалить.
Недавно выпущена новая версия jQuery - jQuery v1.4. Вы можете прочитать все об этом здесь. Это позволяет вам делать довольно аккуратные вещи, такие как:
$("div.test").bind({
click: function(){
$(this).addClass("active");
},
mouseenter: function(){
$(this).addClass("inside");
},
mouseleave: function(){
$(this).removeClass("inside");
}
});
Что вам больше всего нравится в этой новой версии? Что заставило вас пойти "НАКОНЕЦ"?
Добавлена щедрость, чтобы получить больше отзывов и принять ответ
Лучшая функция, на мой взгляд, позволяет выполнять функции в сеттерах:
jQuery('li.selected').html(function(i, li) {
return "<strong>" + li + "</strong>";
});
Много кода, требующего $.each, теперь можно удалить.
Верьте или нет, момент "FINALLY" для меня был добавлением delay()
:
$("#notice").slideDown('500').delay(4000).slideUp('500'); // = Pure awesome :)
Возможность создавать элементы "на лету" более аккуратно, передавая все атрибуты в качестве второго аргумента jQuery()
:
jQuery('<div/>', {
id: 'foo',
mouseenter: function() {
// do stuff
},
html: jQuery('<a/>', {
href: 'http://google.com',
click: function() {
// do stuff
}
})
});
Все свойства неатрибутов сопоставляются с соответствующим методом jQuery. Таким образом, html
будет вызывать .html()
, а click
свяжет новое событие click
через .click()
...
У меня действительно нет фаворита, вот обзор 15 новых функций для тех, кто не знает, что это такое:
Я фанатик скорости, поэтому любое улучшение скорости всегда приветствуется мной
Для меня это было так:
"Все события могут быть живыми событиями"
"С гордостью посчитали некоторые дополнительные мероприятия среди тех поддерживается live(). 1.4 вводит кросс-браузерная поддержка изменений, submit, focusin, focusout, mouseenter, и mouseleave через событие делегирование в .live()."
Я ждал этого в событии изменения целую вечность!
Ну, улучшения производительности - это, конечно, то, что я ценю, но я думаю, что я не могу сказать это "наконец", поскольку это то, что постоянно улучшается:) Синтаксис DOM-building (Quick Element Construction) выглядит очень удобным, и метод detach
также выглядит вполне применимым: он позволяет временно удалить объект из DOM, но сохраняет все назначенные ему обработчики, так что он будет работать точно так же, когда он снова вставляется.
Я предполагаю, что там не так много всего, что мне не хватало, но теперь, когда эти новые функции есть, есть куча, которую я очень хочу начать использовать:)
Делегирование событий для фокуса и событий пузыря:
Мне очень нравится отложить() и отделить() больше всего, если честно. Улучшение производительности - огромный плюс, но delay(), вероятно, является самой удивительной частью этого. Простой, но очень полезный. Больше нет setTimeouts().
Он был очень модульным с 1.3+. Например, когда вам не нужна библиотека ajax, ее легко создать без нее. Не уменьшайте размеры файлов.
Назовите меня сумасшедшим, но просто добавленное количество тестов дает мне теплое нечеткое чувство. Я почти хочу переложить каждый ответ:) _
Я думаю, что unwrap() прост, изящный, и вы получите innerHTML в конце!
Новый метод распаковки детей данного родителя и заменить сказал родитель с ними. Например:
<body>
<div>
<p>this</p> <p>is</p> <p>fun</p>
</div>
</body>
$('div').unwrap();
<body>
<p>this</p> <p>is</p> <p>fun</p>
</body>
$.proxy()
Чтобы убедиться, что это всегда означает это, а не это...
Пример из здесь
MyModule = function() {
this.$div = $('#testdiv');
this.myString = "Hi! I'm an object property!";
this.$div.click($.proxy(this.handleClick, this));
};
MyModule.prototype.handleClick = function() {
console.log(this.myString); // Hi! I'm an object property!
};
var m = new MyModule();
Для меня это возможность теперь писать обработчики событий с помощью обработчика live()
. Я знаю, что live
также присутствовал в последней версии (1.3.2), но он не был полностью поддержан.
Это делает код бесконечно проще, особенно если у вас большая часть DOM создается "на лету" или через запросы Ajax.
Подробнее о live
здесь: http://api.jquery.com/live/
live() вызовы с такими событиями, как изменение, для меня большая. Я уже давно этого хочу.