2017-02-22 52 views
1

我試圖在下拉菜單中選擇一個項目時彈出警告,下拉列表中填充了數據庫項目。我已經在網上查看了代碼工作正常且彈出警報的代碼的jQuery部分的教程。只是想知道是否有人可以幫助爲什麼它不與我的代碼工作? (阿賈克斯部分無關我的問題)
點擊下拉列表項目時,jquery警報沒有顯示

  $(document).on('click', '.theclass', function() { 
       var clicked = $(this).attr("id"); 
       alert(clicked); 
      }); 

      }); 

    </script> 
+0

'數據類型: 「PHP」,'應該是'數據類型: 「HTML」,'你應該取消註釋警報線。另外,向我們展示HTML。你的事件處理程序也應該是'change',而不是'click'。 –

+0

@ScottMarcus我編輯了代碼,警告即時通訊試圖去工作是最高的一個不是阿賈克斯戒備! – Jub

+0

AJAX和PHP標記如何應用於此?我對此沒有看到AJAXy。 – j08691

回答

2

有幾件事情:

您無法鏈接到外部JavaScript代碼庫,並嵌入自己的JavaScript在一個<script>元素。您必須使用兩個<script>元素,像這樣:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"><script> 

<script> 
     $(document).on('click', '.studentclass', function() { 
      var clickeditem = $(this).attr("id"); 
      alert(clickeditem); 
     }); 
</script> 

另外,你的代碼包括在年底,這是一個語法錯誤額外});

接下來,,因爲您正在動態創建元素,可能是在將元素添加到DOM之前,連接事件處理程序的代碼正在運行。在這種情況下,推薦使用event delegation。即使當前的代碼在腳本運行之前創建了該元素,如果您的代碼結構發生變化,這也被認爲是防止將來成爲問題的最佳做法。

作爲該文章的開頭指出:

事件代表團允許我們附加一個單一的事件偵聽器,到 父元素,將火了 選擇匹配所有後代,這些後代是否存在現在或將來在 中添加。

你的代碼更改爲:

$(document).on("click", ".studentclass", function() { 
    var clickeditem = $(this).attr("id"); 
    alert(clickeditem); 
}); 

既然我們無法重現.PHP這裏,我帶你去工作代碼使用靜態元素。

$(document).on('click', '.studentclass', function() { 
 
    var clickeditem = $(this).attr("id"); 
 
    alert(clickeditem); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="dropdown"> 
 
<button onclick="myFunction()" class="dropbtn">Find Student ></button> 
 
    <div id="myDropdown" class="dropdown-content"> 
 
    <input type="text" placeholder="Search.." id="myInput" onkeyup="filterFunction()"> 
 
     <div id="studentdrop"> 
 
     <div id='students1'> 
 
      <a href="#" id="testing1" class="studentclass">student name</a> 
 
     </div> 
 
     <div id='students2'> 
 
      <a href="#" id="testing2" class="studentclass">student name</a> 
 
     </div>  
 
    </div> 
 

 
    </div> 
 
</div>

+1

從代碼中可以看出,創建頁面時,這些元素似乎存在(它是PHP) – Massimo

+0

Ya我的代碼完全一樣,但它仍然不起作用,它必須與事物的php方面有關 – Jub

+1

@ Jub你的問題中的代碼有兩個主要的語法錯誤,正如我在我的回答中所描述的。 –

相關問題