2010-12-14 16 views
1

データグリッドに問題があります。私は3つから4つのDataGridをそれぞれ1つ下に持ち、各グリッドにはjqueryを使って表示したり隠したりするアクションボタン[select/del/copy/add]があります。jQueryデータグリッドでの表示/非表示問題

各データグリッドは異なるIDを持ち、表示と非表示はjqueryによって制御されます。しかし、私は最初のグリッドをクリックしているとき、次のグリッドは異なるidを持っていてもコントロールイベントを示しています。

ここには、何か高度なjqueryスクリプトが関わっていることが理解できますが、誰かがこれを調べると大きな助けになります。

http://jsfiddle.net/pixelfx/3fwyf/16/

おかげで、 ラヴィ。

答えて

2

問題を表示するには、ボタンの次のセットを選択するあなたは.next()jqueryの関数を使用する必要がありますが、あなたのHTMLが構造体である場合は、両方のボタンのグループ..

をトグルしているということですあなたの例のように、あなたは、これら二つのトグル

$('#actn_btns').toggle(); 
$('#actn_btns1').toggle(); 

を削除する必要がありますし、その場所に$(this).closest('table').next().toggle();を追加します。別の問題でhttp://jsfiddle.net/3fwyf/19/

たとえば、あなたは、テーブル上の重複したIDの要素を持っています。それをしないでください。..


更新

が好き.closest()作品この

はから始まる、セレクタと一致していることを最初祖先要素を取得します。現在の要素 とが進行中ですDOMツリーを使用して を起動します。

.minus.addは祖先ではありません。したがって、最初に.child.minusの要素が現在のノードの子である場所に移動し、次に下に移動してそれらを見つける必要があります。

$(this).closest('tr').find('.minus, .add').toggle(); 
+0

+1とIDの重複はよくある間違いです –

+0

ありがとうGaby。 – Ravi

+0

@Gaby、スクリプトは正常に動作しており、グリッド内のプラス/マイナス画像についても同じことを行っています。しかし、スクリプトに何らかの問題があるようです。 $(this).closest( '。minus、.add')。next()。toggle(); – Ravi

1

のみ

+0

これは、この $( '#のactn_btns')のようになり、次の()トグルを();。。..? – Ravi

+1

これ以上のように:$(this).next( '#actn_btns')。toggle(); – derek