2013-04-23 4 views
0

У меня есть DIV, в котором у меня есть пункт и кнопка, как это:Аякса загружен содержание событие вызвало несколько раз

<div id="my_div"> 
    <p>This is a paragraph</p> 
    <button class="my_btn">Click here!</a> 
</div> 

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

$(function(){ 

    $(document).on('click', '.my_btn', function(){ 

     alert('my button works!');   

    }); 

}); 

Проблема у меня в том, что каждый раз, когда содержимое загружается в моем DIV с моим пунктом и моей кнопки, когда я нажимаю на свою кнопку, я получаю свое предупреждение («моя кнопка работает!») такое же количество времени, то есть, если содержимое загружается 100 раз, я получаю свое предупреждение 100 раз, любая идея, как я могу исправить эту проблему и почему это происходит, пожалуйста?

Спасибо

+0

является то, что код связывания нажмите на главной странице, которая содержит DIV? –

+0

да код находится в заголовке главной страницы – user765368

+0

Похоже, вы каждый раз привязываете новую функцию к событию, не удаляя старый. – Bart

ответ

0

Это немного рубить, но должен работать

$(function(){ 

    $(document) 
    .off() 
    .on('click', '.my_btn', function(){ 

    alert('my button works!');   

    }); 

}); 
0

вы можете отправить вызов Ajax и как вы загружаете DIV для более подробного объяснения.

Это, пожалуйста, пример кода, который, кажется, работает нормально. fiddle here

<div id='data' style='display:none;'> 
    <p>This is a paragraph</p> 
    <button class="my_btn">Click here!</a></div> 
<div id='target'></div> 
<button class='load'>this load works</button> 
$(document).ready(function() { 
    $(document).on('click', '.my_btn', function(){ 
     alert('my button works!');   
    });  
    $('.load').click(function() { 
     $('#target').html($('#data').html()); 
    });  
}); 
+0

Я не думаю, что '.html()' загружает контент по ajax – user765368

+0

uhm, это действительно зависит от того, что вы делаете, поэтому я и спросил. Но загрузка html из div - это не все, что отличается от загрузки его из ajax, в зависимости от того, как вы на него смотрите. Все это говорит ... покажите мне, что код и ответ будут более уместны –

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