2016-02-12 98 views
0

我有说click事件,如果这个元素不必须运行类...功能可按添加防止默认点击事件?

$(document).on('click', '.arrow:not(".disabled")', altSaws); 

这工作得很好,但我的e.preventDefault是altSaws函数中,所以当该元素具有类禁止,在点击用户被带到页面的顶部,有没有其他方式可以做到这一点?

希望这有意义吗?

+0

要么你可以有另一个将调用预设默认值的句柄...或者在现有处理程序中检查条件 –

回答

1

你可以有2个解决方案

上移默认阻止呼叫到一个单独的处理器

$(document).on('click', '.arrow:not(".disabled")', altSaws); 

function altSaws() { 
    //no need to prevent default here 
} 
$(document).on('click', '.arrow', function(e) { 
    e.preventDefault(); 
}); 

或手柄内altSaws

disabled条件
$(document).on('click', '.arrow', altSaws); 

function altSaws(e) { 
    e.preventDefault(); 
    if ($(this).hasClass('disabled')) { 
    return; 
    } 
    //your existing logic 
} 
+0

真棒,感谢@ArunPJohny – Liam

1

你的功能altSaws正是在这个问题缺少的,但它应该这样开始:

function altSaws(e) { 
    e.preventDefault(); 
    ...  
}