2016-01-20 3 views
0

В настоящее время я пытаюсь выполнить некоторую работу над некоторым кодом, который я не написал или не понял полностью. Страница динамически вызывает контент с помощью AJAX. Я пытаюсь манипулировать этим контентом, но, конечно, потому что страница уже загружена, когда я применяю ее к динамическому контенту, который он игнорирует. Вот некоторые основные примеры JQuery я пытаюсь позвонить:jQuery не загружается на Ajax

$(".check").each(function() { 
    $(this).hide(); 
    var $image = $("<img src='img/checked.png' />").insertAfter(this); 
    $image.click(function() { 
     var $checkbox = $(this).prev(".check"); 
     $checkbox.prop('checked', !$checkbox.prop('checked')); 

     if ($checkbox.prop("checked")) { 
      $image.attr("src", "img/checked.png"); 
     } else { 
      $image.attr("src", "img/unchecked.png"); 
     } 
    }) 
}); 

if ($(window).width() < 500) { 
    $('.panel-collapse').removeClass('in'); 
} else { 
    $('.panel-collapse').addClass('in'); 
} 

Как я могу получить эту работу с AJAX, пожалуйста?

+0

Ваш код является частью содержимого, загруженного через ajax или являющегося частью главной страницы? Как насчет публикации вашего кода/логики относительно того, как вы загружаете контент с помощью ajax ?! –

+0

Загружено на главной странице, здесь вы можете увидеть код целиком: view-source: http: //ifyouneedafriendgetadog.com/jobs/ (dev url) –

+0

Делегировать события для динамических элементов. Теперь, потому что ваш код не только связывает события, вы должны установить его в функции и вызвать его (снова?), Как только ваш ajax закончит. Есть тысячи уже обманутых, если я прав ... FYI, это совершенно несовместимо для проверки '$ (window) .width()', используйте вместо этого: [window.matchMedia()] (https://developer.mozilla.org/en/docs/Web/API/Window/matchMedia) –

ответ

1

Используйте его таким образом.

$image.on('click',function() { 
     // your script 
}) 

Как добавлять содержимое динамически это нужно событие delegation.

ОБНОВЛЕНИЕ:

$("some_parent_id_or_class").on('click','img_with_some_class_or_id',function(){ 

    //your script 
}) 

например,

$("some_parent_id_or_class").on('click','img',function(){ 

    //your script 
}) 
+0

Ya, но вы не делегируете событие click здесь ... –

+0

Проверьте обновленный ответ –

+0

Но 'img' не является дочерним по умолчанию .check', он вставлен после. Если вы хотите быть уверенным, что делегирование будет работать (если пузырь событий до этого уровня), делегируйте его на уровень «document» –

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