Ich suche nach einer Möglichkeit, einen Click-Event-Handler mit jQuery an einen Div-Container zu binden.

Während dieser Div-Container alle 10 Sekunden neu gerendert wird, verliert jQuery die Bindung an den Div-Container.

Wie kann man das verhindern?

So sieht mein div-Container aus:

<div id="container">    
<h:panelGroup id="panel" layout="block">
    <h:form id="form">                                              
            <div class="wrap">
                    <div class="call-button" rel="#overlay"></div>      
            </div>              
    </h:form>
</h:panelGroup> 

Hier etwas Javascript:

$('div.call-button[rel]').on('click').overlay({
                    //show overlay
                });

Deine Hilfe ist wilkommen

0
Pek 19 Nov. 2013 im 20:29

3 Antworten

Beste Antwort

Ereignisdelegation:

$("div.wrap").on("click", "div.call-button[rel]", function() {
2
tymeJV 19 Nov. 2013 im 16:30

Verwenden Sie die Ereignisdelegierung, da Sie sich mit der dynamischen Elementdelegierung befassen

$('#container').on('click', '.call-button[rel]', function(){
    //click handler
})
1
Arun P Johny 19 Nov. 2013 im 16:30

Versuchen:

$('body').on('click','div.call-button[rel]', function(){
    //click handler
})
1
grigno 19 Nov. 2013 im 16:31