2014-05-20 99 views
0

我:可选择 - 跳过元素

<table id="table" border="1"> 
    <tr><td>a1</td><td>a2</td><td>a3</td><td>a4</td><td>a5</td></tr> 
    <tr><td>b1</td><td>b2</td><td>b3</td><td>b4</td><td>b5</td></tr> 
    <tr><td>c1</td><td>c2</td><td class="no">c3</td><td>c4</td><td>c5</td></tr> 
    <tr><td>d1</td><td>d2</td><td>d3</td><td>d4</td><td>d5</td></tr> 
    <tr><td>e1</td><td>e2</td><td>e3</td><td>e4</td><td>e5</td></tr> 
    <tr><td>f1</td><td>ff2</td><td>f3</td><td>f4</td><td>f5</td></tr> 
</table> 

和:

$("#table").selectable({ 
    filter: 'td:not(.no)', 
    stop: function(event, ui) { 
     var selected = $(this).find('.ui-selected'); 

     console.log(selected); 
    } 
}); 

FIDDLE:http://jsfiddle.net/5RxB2/

如何是最好的方式跳过元素?我想总是一个矩形或方形。

一些例子:

1)I选择A1,A2,B1,B2 - 这是行

2)I选择A1,A2,A3,B1,B2,B3 - 这是行

3)I选择A2,B2 - 这是行

4)予选自:

A1,A2,A3,A4

B1,B2,B3,B4

C1,C2,A4 // A3 haveclass没有

D1,D2,D3,D4

所以,我想获得一个矩形或正方形。这应该始终首先选择(在本例中为a1)并拒绝其他人(a1,a2,b1,b2) - 因此,这应该拒绝TD向上并从c3(类别no)侧向。

这可能吗?如果是,如何? :)

回答

0

项1)filter使用选择器:

$("#table").selectable({ 
    filter: 'td:not(.no)', 
    stop: function(event, ui) { 
     var selected = $(this).find('.ui-selected'); 

     console.log(selected.filter(':first,:last')); 
    } 
}); 

Fiddle


选项2)find使用选择器:

$("#table").selectable({ 
    filter: 'td:not(.no)', 
    stop: function(event, ui) { 
     var selected = $(this).find('.ui-selected:first,.ui-selected:last'); 

     console.log(selected); 
    } 
}); 

Fiddle