Она ошибки мне, что я не кэшировать, что $(this)
, но это не нужно и не будет давать какой-либо реализован приросту производительности на моем взгляде. Тем не менее, я полагаю, что это примерно так же коротким, как он собирается получить:
$('#start, #stop').click(function(){
$(this).hide();
$(this).siblings('button').show();
});
http://jsfiddle.net/userdude/S4d6j/1/
Таким образом, это зависит от структуры DOM и где элементы. В качестве альтернативы можно было бы просто использовать this.id
, чтобы определить, какая была нажата, а затем переключать значения соответственно:
$('#start, #stop').click(function(){
var buttons = {start: 'stop', stop: 'start'};
$(this).hide();
$('#' + buttons[this.id]).show();
});
http://jsfiddle.net/userdude/S4d6j/3/
EDIT: Сделано это еще больше consise с $(this).hide()
.
Отсутствие хитрости, тройников никсонов или дублирование в обработчиках. Просто приятно и просто.
С '$ ('button # stop')' вам не нужно 'button'. Итак, '$ ('# stop')'. jQuery и Javascript настроены на быстрое определение элементов 'id', и, хотя я думаю, что jQuery будет оптимизировать ваш запрос (например, удалить« кнопку »из селекторов), я считаю это плохой привычкой и, безусловно, ненужным. –