簡體   English   中英

HTML PHP onclick只工作一次

[英]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]); ?>)"> &nbsp;
      <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM