Э-э ... это довольно ужасный способ делать то, что вы хотите, но вы исправите это, заменив все .click
на .live('click'
- во время добавления событий ко всем элементам, dontclick2
, 3
и т. Д. Еще не существует. Читайте на live для дополнительной информации или ищите по этому сайту, так как эта проблема встречается довольно часто.
EDIT
Я не мог устоять. Хотя ответ Джона обеспечивает достойный способ делать то, что вы хотите, я не большой поклонник смешивания Javascript с разметкой, подобной этой. Всякий раз, когда вы хотите добавить новые забавные сообщения и тому подобное, вам придется возиться с массивами Javascript и тому подобным, что отчасти не круто.
лучший способ сделать это (по крайней мере, по моему скромному мнению) будет иметь такую разметку на вашей странице:
<ul id="easter_messages" style="display: none;">
<li>Don't click</li>
<li>I told you not to click.</li>
<li>Now you will suffer.</li>
<li>Shame!</li>
<li>You shouldn't click.</li>
<li>But you did. Sigh.</li>
</ul>
Это будет семантически правильное представление о том, что у вас есть. Вы можете использовать CSS так:
#easter_messages ul, #easter_messages li { margin: 0; padding: 0; }
#easter_messages li { cursor: pointer; list-style-type: none; display: inline; }
И, наконец, используйте этот код jQuery:
$('#easter_messages').show().find('li').hide().click(function() {
var $li = $(this).next('li');
if($li.length == 1) {
$(this).hide();
$li.show();
}
}).filter(':first').show();
Этот код будет по существу отображать список, связывая обработчик щелчка, который находит следующий элемент списка относительно того, на который щелкают, если он находит тот, он скрывает себя и показывает его, а затем вне щелчка мы показываем первый один, чтобы начать дела.
И это пример этого в действии .