1

このコードは次のことを行います。

  • 項目行の「削除」をクリック -> 項目行を削除
  • カテゴリ行の「削除」をクリック -> カテゴリ行とすべてのアイテム行 (すべてのテーブル) を削除します

次のことを行う必要があります。

  • アイテム行の「削除」をクリックします - >アイテム行を削除します(完全に機能します)
  • カテゴリ行の「削除」をクリックします - >カテゴリ行とそのカテゴリ行内のすべてのアイテムを削除します(まだ機能します)

ライブデモ: http://usercp.athensluna.net:81/mall_manager2/

テーブル:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Go go Luna!</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="styles.css" />
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="jquery.jeditable.js"></script>
        <script type="text/javascript">                                         
            $(document).ready(function() {
                $("tr.item .delete").click(function(){
                    $.post("do.php", { what: "delete", q: $(this).attr("id") });
                    $(this).parent().parent().fadeOut("fast");
                });

                $("tr.category a.delete").click(function(e){
                    $(this).parent().parent().fadeOut("fast");
                    $(this).parent().parent().nextAll("tr.item").fadeOut("fast");
                });

            });
        </script>

    </head>
    <body>
        <div id="wrapper">
            <div id="header"></div>
            <div id="main">
<table class="stats" width="100%">
    <tr class="category">
        <td colspan="2">Costumes<br /><small>Make your character look uniqe</small></td>
        <td width="80"><a href="#" class="delete" id="category:1">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:1:1">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:1:2">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:1:3">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:1:4">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:1:5">Delete</a><br />Invisible</td>
    </tr>
    <tr class="category">
        <td colspan="2">Costumes<br /><small>Make your character look uniqe</small></td>
        <td width="80"><a href="#" class="delete" id="category:2">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:2:1">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:2:2">Delete</a><br />Invisible</td>
    </tr>
    <tr class="category">
        <td colspan="2">Costumes<br /><small>Make your character look uniqe</small></td>
        <td width="80"><a href="#" class="delete" id="category:3">Delete</a><br />Invisible</td>
    </tr>
    <tr class="item">
        <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
        <td width="120">1000 Athen Coins<br />$1 Paypal</td>
        <td width="80"><a href="#" class="delete" id="item:3:1">Delete</a><br />Invisible</td>
    </tr>
</table>
            </div>
            <div id="footer">Template by <a href="http://danspd.com" target="_blank">DanSpd</a></div>
        </div>
    </body>
</html>
4

3 に答える 3

1

HTMLをまったく変更できますか?

<tbody>次のように、HTMLが各カテゴリのタグを使用する場合、jQuery はより簡単になります (そして HTML はより説明的になります) 。

<table class="stats" width="100%">
    <tbody>
        <tr class="category">
            <th scope="rowgroup" colspan="2">Costumes<br /><small>Make your character look uniqe</small></th>
            <td width="80"><a href="#" class="delete" id="category:1">Delete</a><br />Invisible</td>
        </tr>
        <tr class="item">
            <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
            <td width="120">1000 Athen Coins<br />$1 Paypal</td>
            <td width="80"><a href="#" class="delete" id="item:1:1">Delete</a><br />Invisible</td>
        </tr>
        ...
    </tbody>
    <tbody>
        <tr class="category">
            <th scope="rowgroup" colspan="2">Costumes<br /><small>Make your character look uniqe</small></th>
            <td width="80"><a href="#" class="delete" id="category:2">Delete</a><br />Invisible</td>
        </tr>
        <tr class="item">
            <td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
            <td width="120">1000 Athen Coins<br />$1 Paypal</td>
            <td width="80"><a href="#" class="delete" id="item:2:1">Delete</a><br />Invisible</td>
        </tr>
        ...
    </tbody>
</table>

次に、jQuery を次のように書き直すことができます。

    <script type="text/javascript">                                         
            $(document).ready(function() {
                    $("tr.item .delete").click(function(){
                            $.post("do.php", { what: "delete", q: $(this).attr("id") });
                            $(this).parent().parent().fadeOut("fast");
                    });

                    $("tr.category a.delete").click(function(e){
                            $(this).parents('tbody').fadeOut("fast");
                    });

            });
    </script>
于 2009-12-23T08:04:14.730 に答える
0

使用している jQuery のバージョン、または IE でテストしているかどうかはわかりませんが、fadeIn/fadeOut を使用する jQuery 1.3.2 には問題を引き起こしている可能性のあるバグがあります。

http://dev.jquery.com/ticket/4440

それが問題かどうかはわかりませんが、言及したいと思いました。

于 2009-12-23T07:48:10.540 に答える
0
$("tr.category a.delete").click(function(e){

  e.preventDefault();

  // find the row
  var $tr = $(this).parent("tr:first");

  // find the next row with class 'category'
  var $nextcategory = $tr.next("tr.category");

  // select next 'item' rows after next of the next 'category' row
  var $nextitemrows = $nextcategory.next('tr.category').nextAll('tr.item');

  // remove next 'item' rows before next of the next 'category' row
  $nextcategory.nextAll("tr.item").not( $nextitemrows ).remove();

  // remove next category
  $nextcategory.remove();
});


$("tr.item a.delete").click(function(e){

  e.preventDefault();

  // find the row & remove itself
  $(this).parent("tr:first").remove();
});
于 2009-12-23T07:16:38.153 に答える