jQuery останавливает всплывающее событие клика при использовании $.get()

Я назначил событие щелчка кнопке, которая извлекает другой фрагмент HTML и вставляет его в элемент DIV с помощью метода .html(string).

$('#btnClose').click(function(){ 
   $.get('Content.html',function(data) {
      $('#EditCategory').html(data); 
   }); 
});

Страница Content.html выглядит следующим образом:

<button id="btnNewCategory" type="button">Add new category</button>
<script type="text/javascript">
   $('#btnNewCategory').click(alert('Test'));
</script>

Каждый раз, когда я нажимаю кнопку «#btnClose», отображается содержимое HTML-снипера, но также срабатывает предупреждение («Тест»). Я пробовал stopPropagation(),preventDefault() и возвращал false; и не было радости. Может ли кто-нибудь пролить свет на то, что я делаю неправильно???


person Click Ahead    schedule 04.08.2010    source источник


Ответы (1)


Вместо этого ваш обработчик должен быть таким:

$('#btnNewCategory').click(function() {
  alert('Test')
});

В настоящее время вы запускаете alert('Test') немедленно и пытаетесь присвоить результат обработчику кликов. Если вы хотите, чтобы он запускался при нажатии, используйте анонимную функцию, как я сделал выше.

Это не проблема распространения, прочитайте здесь, чтобы лучше понять это, но обязательный :)

person Nick Craver    schedule 04.08.2010
comment
Хорошо подмечено !! Я не знаю, как я это пропустил! - person Click Ahead; 04.08.2010