2013-03-25 3 views
-1

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

У меня есть div, действующий как кнопка для загрузки содержимого через .load, проблема в том, что я загружаю в JS, не будет работать на нем.

HTML:

<div class="a" id="aa">Button #1</div> 
</br> 
</br> 
<div id="loada"></div> 
</br> 
</br> 
<div id="loadb"></div> 

JS:

$(document).ready(function(){ 
    $('#aa').click(function(){ 
    $('#loada').load('load.htm #bb'); 
}); 
    $('#bb').click(function(){ 
    $('#loadn').load('load.htm #cc'); 
}); 

});

нагрузки HTM:

<div class="b" id="bb">Button #2</div> 
<div class="c" id="cc">Content #1</div> 

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

Любой, кто может помочь?

Редактировать: Что не так с нижеследующим?

$('#bb').on('click', '#bb', function(event){ 
    $('#loadb').load('load.htm #cc'); 
}); 
+0

Используйте '$ (document) .on ('event', 'selector', function)' like '$ (document). on ('click', '#aaa', function() {...}) ' –

ответ

1
$("#selector").on("click", function(event){ 
}); 

делегированные-события подход придает обработчик событий только один Elemen

$("#selector").on("click", "selector", function(event){ 

    }); 
+0

Не могли бы вы объяснить это дальше для меня? – NuMs

+0

@ user2206632 Подход с делегированными событиями присваивает обработчик события только одному элементу, bb, и событие должно только пузыриться на одном уровне. См. Здесь http://api.jquery.com/on/ – PSR

+0

. дно ОП, что я там сделал? – NuMs

-1
$(document).ready(function(){ 
     $('#aa').on("click",function(){ 
     $('#loada').load('load.htm #bb'); 
      $('#bb').on("click",function(){ 
        $('#loadn').load('load.htm #cc'); 
       }); 
      }); 
    }); 

if you are using jQuery 1.9 use "on" , if using older version use "live". [live is deprecated remember.] 
+0

Разве это не тот же код, что и у OP? Тот, который не работает? –

+0

Хорошо, теперь все по-другому, но по-прежнему имеет ту же проблему. Обработчик событий по-прежнему связан до того, как элемент существует. –

0

вы можете попробовать сделать нажмите на функцию обратного вызова нагрузки, как это:

$(document).ready(function(){ 
    $('#aa').click(function(){ 
    $('#loada').load('load.htm #bb',function(){ 
     $('#bb').click(function(){ 
      $('#loadb').load('load.htm #cc'); 
     }); 
    }); 
}); 
Смежные вопросы