2013-06-11 4 views
1

Я создаю свои элементы HTML с помощью java-скрипта createElement(). Но я не могу выбрать какой-либо элемент html в JQuery - $("p").on("click",function(){}). Он работает для $(document). Мой сценарий JQuery находится в конце тела на странице html. Но когда элементы проверки проверяются в браузере после создания страницы, элементы html находятся ниже скриптов.JQuery не может выбрать динамически создаваемые элементы html

Я видел там много других подобных вопросов, но никто из них не работал. Пожалуйста, помогите мне решить эту проблему. Я работаю над этим пару дней и не беру с собой.

ответ

6

Для динамически создаваемых элементов используют:

$(document).on('click', 'p', function(){ 
    console.log("clicked"); 
}); 

jsFiddle demo, показывая назначая событие щелчка перед созданием элемента.

+0

Спасибо большое, это worked.I не могу поверить, я потратил столько времени на это. Еще раз спасибо. – user1236173

0

live вместо on.

$("p").live("click",function(){} 

Edit:

использование live осуждается мы можем использовать on, но работая с тя документа, а не из элемента.

Использование:

$(document).on('click', '.someClass', doSomething);

Вместо:

$('.someClassParent').on('click', '.someClass', doSomething);

+0

'live' устарел для буквально лет .. –

+0

' .live() 'устарел – MrCode

+0

Я пробовал много раз для динамически сгенерированного содержимого, где на работе не работает, :) – mansoor