2009-08-25 8 views
0

私は選択セル停止伝播

$("#selectTable").selectable({ filter: ">*>tr>td"}); 

を持ち、細胞の1がそうのようにドラッグ可能なdivの

$(".dragMe").draggable({}); 

HTMLを含むテーブルがある場合:

<table id="selectTable"> 
    <tr> 
     <td> 
     1 
     </td> 
     <td> 
     2 
     </td> 
     <td> 
     3 
     </td> 
     <td> 
     <div class="dragMe">drag me</div> 
     </td> 
    </tr> 
</table> 

divを含むセルを選択できないようにするにはどうすればよいですか?

ドラッグ使用のために...

任意の提案やヒントを、私はdivの表のセルの前にクリックイベントをインターセプトします推測が、ドラッグ可能な要素にするevent.stopPropagationを使用しての私の試みは、これまでどこにも私を導いていません選択可能な親の中で最も高く評価されるでしょう!

EDIT: 選択のためのキャンセルオプションにdiv要素を追加することはほとんど機能しているようです -

$("#selectTable").selectable({ filter: ">*>tr>td", cancel: ':input,option,div'}); 

あなたは+ドラッグすると、これはあなたがそれをクリックすると、選択されているから、divのを防ぎ、ではなく、周囲の要素と一緒にそれを選択してください。

編集 私は今、これを解決してきた、この質問に対する解決策はhere

+0

選択colsのオプションにクラスを追加していますか?そうすれば、あなたはそれらをフィルタリングできます。 – stefita

+0

hmm良い提案ですが、ドラッグ可能な要素は特定の行にしか表示されない可能性があります。 – RYFN

答えて

0

があなたのドラッグ可能な要素のクリックメソッドの最後にreturn falseを入れてみてください見つけることができます。

+0

残念ながら、それは動作しないようです...しかし、選択肢のキャンセルオプションにdivを追加するとほとんど動作します。 – RYFN

1

私はこれは古い質問だと知っていますが、選択可能なセルを持つ表内でクリック可能でないタグについても同様の問題がありました。

方法以下について:

<table id="selectTable"> 
<tr> 
    <td> 
    1 
    </td> 
    <td> 
    2 
    </td> 
    <td> 
    3 
    </td> 
    <td class="dragMe"> 
     <div>drag me</div> 
    </td> 
</tr> 

$("#selectTable").selectable({ filter: ">*>tr>td", cancel: ".dragMe"}); 
関連する問題