2009-06-20 17 views
1

私は、モーダルでデータを開いてテーブルの行を編集できるようにする関数を持っています。今すぐ行全体がモーダルを発射します。私が望むのは、処理のためにデータを準備する関数を起動するリンクを含む最後のtdを分離することです。jquery tablerow click function

最後のtdをクリックするとモーダルが開き、レディファンクションが起動します。私はモーダルを開くのを止めようとしています。

また、テーブルの各行にマウスオーバー行がハイライト表示されています。

これは私がモーダル機能でテーブルの行を関連付ける方法を示します。

$("#table").find("tr").click(function(e) { 

//code to open model 
} 

これは、私は準備ができて機能を起動する方法です:

$("#table tr td:last-child a").click(function(e) { 
//code to open model 
} 

答えて

1

は、私はあなたがpropogatingからのイベントを防ぐためにe.stopPropogation()を呼び出す必要があると考えています。これはバブリングと呼ばれ、この場合、クリックイベントがAエレメントからTRエレメントにバブルアップしているため、2番目のモーダルが発生しています。

私はすべてのイベントが伝播してバブルすると信じています。 falseを返すと、リンクに続くA要素のデフォルトのアクションがキャンセルされますが、イベントオブジェクトは停止しません。

ここには全部のgood explanationがあります。

+0

onClickイベントの場合、これは必須ではありません。それを試してみてください。 – molf

+0

私はすべての答えを試しました...これは動作します。私が理解できないのは、返品の偽りの有無にかかわらず動作する理由です... ありがとう、 ワリ – wali

+0

@Wali、私の説明を追加しました。 –

1

は単に "return false;" を追加します。

$("#table tr td:last-child a").click(function(e) { 
    // whatever should happen when clicking the anchor 
    return false; 
} 

イベントが周囲に伝播するのを防ぐtr

$("#table tr td:last-child a").click(function(e) { 
    //code to open model 
    e.stopPropagation(); 
    return false; 
} 

説明

イベントは親までで最も「具体的な」要素から伝播

0

理由だけではなく

...のようなあなたのリンクに

をIDまたはクラスを割り当て、表示を追加し、テーブル内の任意の行の最後のセル内のリンクを見つける:ブロックプロパティをそれが中に含まれている領域全体を埋めるためにアンカーを作るCSS。

から単に

$('.anchorclass').click(function(){ 

//ここで何かを

});