【发布时间】:2015-05-25 16:08:18
【问题描述】:
我有 3 个按钮,我使用它们的 cals 创建了一个点击函数。
$('.abc').click(function(e, elem){
alert("triggered");
});
我还有另一个点击函数,它通过从每个案例中传递一个值 (val) 来触发上述点击函数 ($('.abc'). click function)。
$(".custom-menu li").click(function(){
// This is the triggered action name
switch($(this).attr("data-action")) {
// A case for each action.
case "case1": $('.abc').trigger('click',['first']); break;
case "case2": $('.abc').trigger('click',['second']); break;
case "case3": $('.abc').trigger('click',['third']); break;
}
});
我的问题是,当我直接点击一个按钮时,警报只显示一个。但
当我单击其他功能($(".custom-menu li").click(function(){)中的按钮时,警报显示 3 次。如何仅在通过$(".custom-menu li").click(function(){ 完成点击时才显示一次警报?
$('.abc').click(function(e, elem){ // alert is shown once only
$(".custom-menu li").click(function(){ // alert is shown 3 times
【问题讨论】:
-
如果能看到全貌就好了,例如您的完整结构,但我的第一个想法是您可能遇到事件冒泡问题。尝试在
$('.abc.').click(function(e, elem) { // here中添加e.preventDefault()和e.stopPropagation()。
标签: javascript jquery