有幾件事情:
您無法鏈接到外部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>
'數據類型: 「PHP」,'應該是'數據類型: 「HTML」,'你應該取消註釋警報線。另外,向我們展示HTML。你的事件處理程序也應該是'change',而不是'click'。 –
@ScottMarcus我編輯了代碼,警告即時通訊試圖去工作是最高的一個不是阿賈克斯戒備! – Jub
AJAX和PHP標記如何應用於此?我對此沒有看到AJAXy。 – j08691