3

表の各列はクリック可能で、クリックすると一部のコンテンツが表示されます。また、各列には、列を非表示にするボタンを保持する td があります。このような

ここに画像の説明を入力

非表示部分は私には機能しません。明らかに、公開部分が最初にトリガーされ、非表示は無視/起動されません。

$("tr td.remove").live("click", function(){
    $(this).parent("tr:first").hide('slow');
});

$(".reveal").click(function(){
    $(this).next(".content").slideToggle("fast");
});

HTML

 <table>
    <tr class="reveal">
       <td>300,00 €&lt;/td>
       <td class="remove">X</td>
    </tr>
    <tr class="content">
        <td colspan="2">
           Content
        </td>
    </tr>
 </table>

これを組み合わせて両方のアクションを受け入れるにはどうすればよいですか? jQuery 1.6.2 を使用しています。

フィドル: http://jsfiddle.net/2jVtC/1/

4

3 に答える 3

3

単純 :)

$("tr td.remove").live("click", function(e){
    e.stopPropagation();
    $(this).parent("tr:first").hide('slow');
});

$(".reveal").click(function(e){
    e.stopPropagation();
    $(this).next(".content").slideToggle("fast");
});

ライブよりも.on()を使用する方が適切です。プリフォームが速くなります。そのように:

$('table')
   .on('click','.reveal',function(e){
      e.stopPropagation();
      //stuff
   }).on('click','.remove',function(e){
      e.stopPropagation();
      //stuff
   });
于 2012-08-31T11:15:46.320 に答える
3

ここではjsFiddleが動作しています。

$('.content').hide();
$(".reveal").click(function() {
    $(this).next(".content").slideToggle("fast");
});
$("tr td.remove").live("click", function() {
    $(this).parent("tr").slideUp('slow');
    $(this).parent().next(".content").slideUp('slow');
});​

代替選択

注: jQuery 1.6.4 を使用している場合、closest()メソッドは機能しません。

$(".reveal").click(function(){
    $(this).closest(".content").slideToggle("fast");
});
于 2012-08-31T11:15:05.467 に答える
1

.on() は .live() を置き換えました。on と hide がうまくいかない?それらは私にとってはうまく機能します... http://jsfiddle.net/Umxgy/

編集 jQuery の古いバージョンを使用しているため、.live() は正しいです。これがうまくいくかどうか教えてください。私はあなたとは違うセレクターを持っています。

EDIT 2 質問を誤解して申し訳ありません。ここに新しいフィドルがあります: http://jsfiddle.net/Umxgy/2/

于 2012-08-31T11:31:51.637 に答える