[英]HTML PHP onclick only working once
好的,我們開始。 我有一個可點擊的圖片(太難了,對吧?):
<DIV id="<?PHP echo($row[number]); ?>">
<IMG TITLE="Favorite!" src="drool_bw_nobg.png"
align="center" onclick = "favorite(<?PHP echo($row[number]); ?>)">
<b>Like</b>
</DIV>
請記住,我已經使用PHP內聯(上面的示例)完成了此操作,並使用了echo()
語句甚至使用了\\'%s\\'
通配符的printf()
語句來完成此操作。
好的,當我單擊圖像時,將調用Favorite(id)
javascript函數。 第一個非常命令是alert();
語句,后跟一些AJAX代碼。
后者可以很好地工作,當單擊主頁上的圖像時,AJAX引用的php腳本可以很好地完成其工作。
然后,您也可以單擊其他圖像,所有內容仍然可以正常使用,但是單擊已單擊的圖像...什么都沒有...納達... zilch。 alert()
語句甚至不會彈出。
真正的頭刮刀。 希望有人遇到過這個問題,並且找到了一個聰明的解決方案。
這是我最喜歡的()javascript函數:
function favorite(id){
alert(id);
getImage = document.getElementById(id);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?img="+id,true);
xmlhttp.send();
}
就像我說的,一切都在第一次運行,但是您必須刷新頁面才能再次單擊同一圖像。
好吧,這就是問題。 您擁有以下內容(我已刪除了所有不相關的標簽/屬性/ PHP):
<DIV id="1">
<IMG onclick="favorite(1);"/>
</DIV>
當您單擊IMG
,會調用favorite()
函數。 然后,您可以通過AJAX獲取內容,並更新DIV
元素的innerHTML
。 此時,您將用從AJAX請求中檢索的內容替換DIV
內容。
最有可能的是,AJAX內容不包含onclick
處理程序,因此,一旦更新了元素一次, onclick
處理程序就會消失。 隨后的點擊將不再調用您的favorite()
方法。
只需將onclick
處理程序放在DIV
而不是IMG
,一切都會好起來的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.