2015-02-09 43 views
0

簡單的問題:我有一個時間表,裏面有一個禁用的a。 我想用prev和next按鈕點擊時間欄。這工作正常。問題是跳過diabled「0」按鈕。當時間欄是f.e.點擊「6」和下一步按鈕,他應該去「1」按鈕。我試着用不()過濾器的類,但是,這並不爲我工作:跳過禁用li/a

pr.find('a.time:last:not("time.disabled")').addClass('active_fp'); 

這裏是我的小提琴: http://fiddle.jshell.net/2mgj0cr2/44/

問候約翰

回答

1

如果你想支持disabled開頭和中間也然後嘗試

function follow() { 
    var next = $('#timebar li a.active_fp').removeClass('active_fp').parent().nextAll(':has(a.time:not(.disabled)):first'); 
    if (next.length == 0) { 
     next = $('#timebar a.time:not(.disabled):first').addClass('active_fp'); 
    } 
    next.find('a').addClass('active_fp'); 
    var fp = next.find('a').attr('data-id'); 
    $('#text').html(fp); 
} 

演示:Fiddle

1

你的其他選擇應該是:

Updated Example

$('#timebar a.time:not(".disabled")').first().addClass('active_fp'); 

連鎖.first()方法選擇器爲了搶第一個a.time元素沒有類disabled

您還可以查看是否先前元素具有類.disabled

if (pr.length === 0 || pr.find('a').hasClass('disabled')) { ... }