Jquery funktioniert nicht nach ajax-Aktualisierung-Seite
Bin ich über einen jquery-code, um zu überprüfen, alle Checkboxen und ich mag das:
var JQ7=jQuery.noConflict();
JQ7(document).ready(function(){
JQ7("#chkAll").click(function(){
JQ7(".chk").prop("checked",JQ7("#chkAll").prop("checked"))
})
});
...
<input type="checkbox" id="chkAll" />
...
<input type="checkbox" class="chk" />
Habe ich alle code in der ajax-Seite. Beim ersten laden funktioniert einwandfrei, aber nachdem ich aktualisieren, es funktioniert nicht für mich. Hier der ajax code :
function showUser(str,pageno,type,sub)
{
if (str=="" || pageno=="" || type=="" || sub== "")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{//code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php echo $view['router']->generate('listing') ?>?page="+pageno+"&genre="+str+"&cat="+type+"&subcat="+sub,true);
xmlhttp.send();
}
- Was bedeutet der ajax-Aufruf zurückkehren? Macht es dynamisch zu generieren
#chkAll
? - Wenn
chkAll
innerhalbtxtHint
müssen Sie die auf einmal wieder als wäre dies ein neues DOM-element. - Ja, es ist von innen 'txtHint' div,aber ich bin nicht sehr Professionell in javascript zu verstehen, was du meinst?!
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie konstruieren Teile der Seite dynamisch, müssen Sie fügen Sie Ihre event-Handler für $(...).auf(), ansonsten wird der event-Handler gehen verloren, wenn die Elemente ersetzt werden. Alternativ können Sie auch fügen Sie die event-Handler wieder, dass dieser Teil der Seite geändert.
Müssen Sie Ihre event-Handler mit dem zweiten Selektor-parameter wie folgt:
Beispiel der Delegierte vs nicht delegiert event-handler: http://jsfiddle.net/pj5EW/
Huckepack auf Lüge Ryan ' s Antwort:
Als es aktuell codiert ist, Ihre Klick-Prozedur gilt nur für Elemente, die bereits in der DOM. Wenn Sie dynamisch zu erzeugen, die Elemente nach dem DOM lädt, Ihrem click-handler, sehen Sie nicht.
Können Sie die jQuery -
()
zu Delegaten das Ereignis. Dies bringt der hf auf das Dokument (und nicht als das element) und ermöglicht es Ihnen, um Elemente auszuwählen, die zur Seite Hinzugefügt werden, nachdem das DOM geladen: