2011-12-21 3 views
4

.click() события стрельбой, если меню находится вне id="content" (статического HTML), но не работает, когда меню находится внутри id="content" (динамического HTML с использованием .load()).JQuery .click() событие не стреляя по ссылке, созданная с .load()

Нажмите Функция: ссылка

$(document).ready(function() { 
    $("a.type").click(function() { 
     var type = $(this).data("id"); 
     $('#content').load("content.php?" + type); 
    }); 
}); 

меню на заголовке (нажмите событие здесь работает):

<li><a data-id="1" class="type">Cars</a></li> 
<li><a data-id="2" class="type">Houses</a></li> 

.load() заполняет эту (нажмите событие не работает здесь):

<div id="content"></div> 
+0

Можете ли вы опубликовать JSFiddle, чтобы показать пример? – cowls

+0

События уже были связаны перед загрузкой данных через AJAX. Ответ Джейка Фейсела должен исправить, но просто подумал, что вы, возможно, захотите узнать, почему это происходит. – Corbin

ответ

8

Изменение от

$("a.type").click(function 

в

$("a.type").live('click', function 

Или, а не жить, вы можете также использовать $(document).on("click", "a.type", function(){}), если вы используете JQuery 1.7+.

+3

'live' устарел в jQuery 1.7+ и не должен использоваться (вместо этого используйте' on'). Еще до 1.7 вместо этого следует использовать делегат. –

+0

Я думаю, что теперь документы рекомендуют использовать 'on' (jquery 1.7+) или' delegate' (предыдущие версии), а не 'live'. –

+0

не все обновили до 1.7, поэтому я подумал, что жить было более широким примером. –

Смежные вопросы