onclick
a
个元素我需要调用一个函数并仅触发#myDiv
一次。假设我点击Apple'它应该只触发一次的任意次数。然后去橘子'或者' Banana'然后回到Apple'再次和早些时候一样,我只需触发一次。假设可以有任意数量的a
,那些是动态的。我怎样才能做到这一点?
function activateMyClick(myId) {
$('#myDiv').trigger('click');
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a onclick="activateMyClick(7)" id="7" class="active">Apple</a>
<a onclick="activateMyClick(8)" id="8" class="active">Orange</a>
<a onclick="activateMyClick(9)" id="8" class="active">Banana</a>
&#13;
答案 0 :(得分:5)
当您使用jQuery对此进行标记时,您可以删除过时的on*
事件属性并使用one()
来实现此目的:
$('a.active').one('click', function() {
$('#myDiv').trigger('click');
});
// for demonstration purposes only:
$('#myDiv').click(function() {
console.log('div click raised!');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="7" class="active">Apple</a>
<a id="8" class="active">Orange</a>
<a id="8" class="active">Banana</a>
<div id="myDiv"></div>
&#13;
答案 1 :(得分:3)
一个简单的解决方案,但我认为按照你的描述工作。
var currentId = "";
function activateMyClick(myId) {
if (currentId != myId) $('#myDiv').trigger('click');
currentId = myId;
}
$('#myDiv').click(function() {
console.log('div click raised!');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a onclick="activateMyClick(7)" id="7" class="active">Apple</a>
<a onclick="activateMyClick(8)" id="8" class="active">Orange</a>
<a onclick="activateMyClick(9)" id="8" class="active">Banana</a>
<div id="myDiv"></div>
&#13;