2017-01-16 38 views
1

我有以下代碼將更改代碼附加到JQuery滑塊。我在我的應用程序兩個滑塊,一個加1,另一種由0.01JQuery級聯類 - 排除一個

$(document).on('click tap', '.fund-changer .minus', function() { 
    var sliderCurrentValue = $(this).next().slider("option", "value"); 
    $(this).next().slider("value", sliderCurrentValue - 1); 
    return false; 
}); 


$(document).on('click tap', '.fund-changer .minus .twodecplace', function() { 
    var sliderCurrentValue = $(this).next().slider("option", "value"); 
    $(this).next().slider("value", sliderCurrentValue - 0.01); 
    return false; 
}); 

滑塊增量由0.01增加是一樣的另一個滑板,但有附加.twodecplace

如何我可以修改第一個click tap代碼,以便不對.twodecplace類運行?代碼當前正在將滑塊遞增1,01,因爲在更改事件時都會觸發

+0

向我們顯示您的標記,請 –

回答

2

通常情況下,return false或調用stopPropagation()可以解決此問題。然而,在這種情況下,您使用的是委託事件處理程序,因此您無法這樣做,因爲您依賴傳播事件處理程序來運行的事件。

相反,您可以檢查.minus處理程序中的event.target,如果目標具有.twodecplace類,則不執行代碼。試試這個:

$(document).on('click tap', '.fund-changer .minus', function(e) { 
    if (!$(e.target).is('.twodecplace')) { 
     var sliderCurrentValue = $(this).next().slider("option", "value"); 
     $(this).next().slider("value", sliderCurrentValue - 1); 
    } 
}); 

$(document).on('click tap', '.fund-changer .minus .twodecplace', function() { 
    var sliderCurrentValue = $(this).next().slider("option", "value"); 
    $(this).next().slider("value", sliderCurrentValue - 0.01); 
}); 
-1

您是否試過添加:not(.twodecplace)?如下所示:

$(document).on('click tap', '.fund-changer .minus :not(.twodecplace)', function() { 
    var sliderCurrentValue = $(this).next().slider("option", "value"); 
    $(this).next().slider("value", sliderCurrentValue - 1); 
    return false; 
});