Я хочу динамически создавать некоторые элементы div в моем контейнере. Я делаю это с простой функцией:
function myFunction(volume){
for(var i = 1; i<= volume; i++){
$('.container').append("<div></div>");
}
Проблема в том, что созданные элементы div не реагируют на мою функцию jQuery.hide(). Кто-нибудь знает, почему он не работает? HTML отлично подходит как для ручных, так и для динамически создаваемых элементов.
Я сделал jsfiddle, но он тоже разбит: http://jsfiddle.net/gQBen/
Мой вызов функции.hide()
$('div').mouseenter(function() {
if (run){
$(this).hide(3000, function() {
result++;
run = false;
rewrite();
});
}
});
Арон решает его в комментариях: http://jsfiddle.net/arunpjohny/SM38C/1/ спасибо!
вы должны использовать делегирование событий для этого
$(".container").on("mouseenter","div",function(e){
});
Делегирование событий позволяет присоединить одного прослушивателя событий к родительскому элементу, который будет срабатывать для всех детей, соответствующих селектору, независимо от того, существуют ли эти дети сейчас или добавлены в будущем.
Используйте.onchange() вместо onclick в опции
$('select').on('change',function(){
myFunction(this.value);
});
также добавить значение к параметрам
<option value="4" >4</option>
Вам также необходимо использовать делегирование делегаций для динамически добавленных элементов
$(document).on('mouseenter','div',function() {
ОБНОВИТЬ
Вопрос был обновлен, поэтому
$(".container").on("mouseenter","div",function(e){
if (run){
$(this).hide(3000, function() {
result++;
run = false;
rewrite();
});
}
});