0

JQuery でレイヤーとリンクのオーバーラップを操作する

tr_________________________________________________________________ | td | td | td | | | チェックボックス | コンテンツ | コンテンツ___________| |____________|______________________|_______________|_a____link_____|

値で満たされたテーブルがあり、コンテンツの一部にテキストが多すぎるため、jquery 関数を使用して、制限を超えた場合にテキスト コンテンツを切り捨てました。切り捨て関数は、テキストの末尾にリンクを追加して、テキスト コンテンツの切り捨てを解除/展開します。

例: "The Quick Brown fox jumps over the" は "The Quick Brown fox [more]" を表示します ([more] はそれを展開するためのリンクです)。

今私の問題は、行 (tr タグ) のどこかをクリックしたときにチェックボックスを選択/選択解除するページを作成しましたが、リンク (タグ) が行と重なるため、リンクをクリックしたときにチェックボックスに影響を与えたくありません ( tr タグ)。

セレクターで a タグを除外し、スパンまたは div を使用してそれらをリンクの下に埋め込んで、ベース行との相互作用を防ぐことを検討しました。div と span を使用して領域のクリックをブロックすることができましたが、css 位置が絶対に設定されている場合にのみクリックをブロックします。

次のようなことができれば、これはもっと簡単だったでしょう:

$("tr").each(function(){ if($(this).find("a").is("clicked"){ //何もしない }else{ if($(this).find( "tr").is("clicked"){ //チェックボックスの切り替え });

} });

リンクまたは行内のリンクがクリックされたかどうかを確認する if ステートメントを実行し、それに基づいてアクションを実行するだけです。

4

1 に答える 1

0

リンクのハンドラーから false を返すだけです。これにより、リンクの通常のアクションが実行されなくなり、バブルアップが防止されます。

 $('tr a.showMore').click( function() {
      ... expand the text or show a popup...
      return false; // don't allow it to bubble up
 });
于 2010-09-19T21:45:04.603 に答える