Преобразует результат $('#select2 option:selected').appendTo('#select1')
в логическое значение и отрицает его.
Однако в результате appendTo
всегда является объектом jQuery, а объект (jQuery или нет) всегдана самом деле, результат !$('#select2 option:selected').appendTo('#select1')
равен всегда ложно.
Таким образом, мы имеем:
$('#remove').click(function() {
$('#select2 option:selected').appendTo('#select1');
return false;
});
Возвращение false
в обработчике событий jQueryостановить действие события по умолчанию (например, отправка формы / навигация по гиперссылке) и остановить событие, распространяющееся дальше по дереву DOM.
Итак, что мы имеем:
$('#remove').click(function(e) {
$('#select2 option:selected').appendTo('#select1');
e.preventDefault();
e.stopPropagation();
});
Использование return false
вместо e.preventDefault(); e.stopPropagation();
- это нормально, но использование return !$(..)
в качестве ярлыка для первого примера смешно, и есть нет нужно это сделать.
Просто чтобы повторить мою точку зрения, самое важное, на что здесь следует обратить внимание, это то, что для этого никогда не бывает веской причины.
Ссылки:
- Документы для
bind()
(псевдоним для click()
) - Документы для
preventDefault()
- Документы для
stopPropagation()