[英]Calling a function by a specific div's elements is not working in jQuery
我有一個手風琴菜單,其中有一些帶有 id 的 div 中的鏈接。 這里我有兩個 id=collapseThree 和 id=collapseFour 的 div。 現在,當單擊 collapseFour div 的任何鏈接元素時,我想要一個簡單的警報。 但沒有警報或console.log。
這是我的嘗試。 我的觀點:
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseThree"><span class="glyphicon glyphicon-th-large">
</span>Hospital</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse">
<div class="panel-body">
<table class="table">
<tr>
<td>
<span class="glyphicon glyphicon-asterisk link-item"></span><a href="${createLink(controller: 'hospitalMember')}">Hospital Member</a>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseFour"><span class="glyphicon glyphicon-th-large">
</span>Somiti</a>
</h4>
</div>
<div id="collapseFour" class="panel-collapse collapse">
<div class="panel-body">
<table class="table">
<tr>
<td>
<span class="glyphicon glyphicon-asterisk link-item"></span><a href="${createLink(controller: 'jointMember')}">Somiti Member</a>
</td>
</tr>
</table>
</div>
</div>
</div>
我的 jQuery 代碼:
$(document).ready(function () {
console.log("ready");
$("#collapseFour").on("click", ".link-item", function() {
console.log("Clicked");
});
})
我只想查看Clicked
文本。
由於帶有link-item
類的span
元素不是單擊元素的父元素,因此您的代碼將無法正常工作。 您可以將span
的結束標記移動到a
元素之后,也可以使用.next()
函數來引用span
之后的下一個元素。
<span class="glyphicon glyphicon-asterisk link-item">
<a href="${createLink(controller: 'jointMember')}">Somiti Member</a>
</span>
$(document).ready(function() { console.log("ready"); $("#collapseFour .link-item").click(function(e) { e.preventDefault(); console.log("Clicked"); }); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree"><span class="glyphicon glyphicon-th-large"> </span>Hospital</a> </h4> </div> <div id="collapseThree" class="panel-collapse collapse"> <div class="panel-body"> <table class="table"> <tr> <td> <span class="glyphicon glyphicon-asterisk link-item"></span><a href="${createLink(controller: 'hospitalMember')}">Hospital Member</a> </td> </tr> </table> </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseFour"><span class="glyphicon glyphicon-th-large"> </span>Somiti</a> </h4> </div> <div id="collapseFour" class="panel-collapse collapse"> <div class="panel-body"> <table class="table"> <tr> <td> <span class="glyphicon glyphicon-asterisk link-item"><a href="${createLink(controller: 'jointMember')}">Somiti Member</a></span> </td> </tr> </table> </div> </div> </div>
我解決問題如下:
$(document).ready(function () {
$(".link-item").next().click(function(e) {
var currId = $(this).closest(".collapse").attr("id");
localStorage.setItem("currItem", currId);
});
$("#" + localStorage.getItem("currItem")).collapse('show')
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.