2016-02-12 173 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(); 
    ...  
}