2013-06-02 2 views
1

Я использую скрипт JQuery, который загружает содержимое, когда пользователь щелкает по различным ссылкам на странице:сценарий AJAX «не видит» нагруженные элементы

$('.main-navigation a[href*=\''+window.location.hostname+'\'], .site-info a[href*=\''+window.location.hostname+'\'], .widget-area a[href*=\''+window.location.hostname+'\'], #breadcrumbs a, #smi-logo a').click(function(event) 

{ 
// Load content and play some animaion 
} 

Проблема заключается в том, некоторые ссылки (.widget-area a[href*=\''+window.location.hostname+'\'], #breadcrumbs a) которые должны быть нацелены на AJAX, на самом деле внутри загруженного содержимого, и сценарий не «видит» их (я думаю, потому что они не отображаются в HTML-источнике страницы).

Как получить доступ к ссылкам, которые находятся внутри загруженного содержимого?

ответ

2

Похоже, вы хотите делегировать обработку событий. Возьмите контейнер, который в конечном итоге сохранит динамически загруженный контент (но который сам по себе существует), и установите для этого обработчика событий on.

Так что, если бы это было DIV с идентификатором, скажем, foo, вы могли бы сделать это:

var hostName = window.location.hostname; 
$('#foo').on('click', 'a[href*=\''+ hostName +'\'], #breadcrumbs a', function(){ 
    //your code here 
}); 
+0

Отлично, спасибо, @Adam! Это решило это. Могу я попросить вас также взглянуть на соответствующий вопрос, пожалуйста? http://stackoverflow.com/questions/16885808/ajax-behavior-disables-some-of-the-default-behavior –

+0

@Figaro - рада помочь. Боюсь, у меня нет ответа на ваш другой вопрос. Я бы просто начал удалять все больше и больше материала, пока вы не сможете изолировать то, что вызывает вашу проблему. Извините, я не могу больше помочь в этом :) –

+0

Спасибо, @Adam, я сделаю то, что вы предложили. –

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