我有 2 個函式做同樣的事情,只是針對我頁面上的兩個不同的類。有沒有辦法將這兩者合并為一個功能?
$(document).on("click", ".class1", function(event) {
const $this = $(this);
if ($this.find($(event.target).closest("a")[0]).length === 0) {
event.preventDefault();
$this.find("a")[0].click();
}
});
$(document).on("click", ".class2", function(event) {
const $this = $(this);
if ($this.find($(event.target).closest("a")[0]).length === 0) {
event.preventDefault();
$this.find("a")[0].click();
}
});
我在頁面上有很多帶有 class1 和 class2 名稱的卡片,我知道我可以給它們每個額外的類,例如 .clickable 并將其添加到頁面上的每張卡片中,但我想知道是否有更簡單的方法讓這個函式同時針對 2 個類的方法。
uj5u.com熱心網友回復:
你可以像這樣把它們放在一起
激活第一個匹配<a>元素上的錨鏈接
$(document).on("click", ".class1, .class2", function(event) {
if ($(this).find($(event.target).closest("a")[0]).length === 0) {
event.preventDefault();
$(this).find("a")[0].click();
}
// $(event.target).find("a").eq(0)[0]?.click();
});
.padd {
padding: 30px;
background: #f0f0f0;
margin-bottom: 20px;
}
#gohere{
margin-top:500px;
height:300px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='class1 padd'>
<a href='#gohere' onclick='console.log("CLICKED1")'>the link</a><br>
<a href='#' onclick='console.log("this should not fire....")'>a second link</a>
</div>
<div class='class2 padd'>
<a href='#' onclick='console.log("CLICKED2")'>the link</a>
</div>
<div class='class2 padd'>
no link here
</div>
<div id='gohere'>Anchor link text....</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/374349.html
標籤:javascript 查询
上一篇:使用CSV填寫網路表單
下一篇:如何從頭開始播放HTML5視頻?
