2014-01-06 4 views
0

В моей статической версии страницы, у меня есть Js вызова:Bind JQuery событие только после того, как DOM нагрузок

$(document).on('click','#id_tag', function() { 

элемент с идентификатором #id_tag ​​не будет в DOM, когда документ сначала загружен. Как связать это событие только при появлении элемента DOM?

Примечание: В более ранней версии, я miswrote идентификатор, как .id_tag Поэтому комментарии ниже

+1

Как элемент добавляется в дом, не могли бы вы добавить его в момент времени? Кроме того, у ids не должно быть никаких '.' В них –

+0

Это должно работать. Единственное, что я могу догадаться, это '#' вместо '.' в вашем коде .. –

+0

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

ответ

0

Я думаю, что вы хотите:

$(document).ready(function(){ 
    $(document).on('click','.id_tag', function() { 
    if($(this)!=null){ 
     //do ur stuff 
    } 
    }); 
}); 
0

ИЛИ это -

$(function(){ 
    // DOM Ready - do your stuff 
    $(document).on('click','.id_tag', function() { 
    if($(this)!=null){ 
     //do ur stuff 
    } 
    }); 
}); 
0

DOM ГОТОВ ФУНКЦИЯ СДЕЛАЙТЕ РАБОТУ!

Самый простой пример будет таким!

$(function(){ 
    var $doc = $(document); 
    $doc.on('click','#id_tag', function() { 
    alert('id_tag is clicked!'); 
    }); 
}); 
0

Сжатый:

$(function(){ 
    $(this).on('click', '.id_tag', function() { 
     //handle click 
    }); 
}); 

Объяснение: Это приводит к JQuery, чтобы прикрепить щелчок слушателя всего document элемента. Когда он щелкнут, jQuery затем проверяется, был ли это элемент класса id_tag, который был на самом деле нажат.

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