0

I want to dynamically create some div elements in my container. I do it with simple function:

function myFunction(volume){
for(var i = 1; i<= volume; i++){
$('.container').append("<div></div>");
}

The problem is that generated div elements does NOT react to my jQuery .hide() function. Does anyone know why it is not working? HTML looks fine for both manualy and dynamically created elements.

I did jsfiddle, but it is kinda broken too: http://jsfiddle.net/gQBen/

My call of .hide() function

$('div').mouseenter(function() {
if (run){
$(this).hide(3000, function() {
result++;
run = false;
rewrite();
});
}
});

Aron solve it in comments: http://jsfiddle.net/arunpjohny/SM38C/1/ thanks!

Jakub Closed
  • 129
  • 2
  • 9

3 Answers3

3

you should use event delegation for that

$(".container").on("mouseenter","div",function(e){

});

Event delegation allows you to attach a single event listener, to a parent element, that will fire for all children matching a selector, whether those children exist now or are added in the future.

Anoop Joshi P
  • 25,373
  • 8
  • 32
  • 53
0

Use .onchange() instead of onclick in the option

$('select').on('change',function(){
myFunction(this.value);
});

also add value to the options

<option value="4" >4</option>

You'll also need to use event-delegation on dynamically added elements

$(document).on('mouseenter','div',function() {

DEMO

Anton
  • 32,245
  • 5
  • 44
  • 54
-1

UPDATE

The question was updated so

$(".container").on("mouseenter","div",function(e){
   if (run){
       $(this).hide(3000, function() {
          result++;
          run = false;
          rewrite();
       });
   }
});
Merlin
  • 4,907
  • 2
  • 33
  • 51