JS:反面减少,在hide()

时间:2010-10-30 09:32:51

标签: javascript jquery

如果我有正常的

 <?php echo "Today (".mysql_num_rows($query)."); ?>

如果有10行,那就是今天(10)。

现在在这个计数器下我有一个while()输出<tr>内的所有行。

在tr里面的<td>我有这个删除按钮,它隐藏了最近的'tr'。

当你隐藏'tr'时,我怎么能将今天(10)减少到今天(9)?

-

我不认为它可能与当前的计数器(mysql_num_rows),但也许如果你计算有多少'tr',在今天(),你可以做一些减少,但我不知道该怎么做这个。虽然这只是一个想法..

5 个答案:

答案 0 :(得分:2)

相应地更改您的PHP:

<?php echo 'Today (<span class="counter">' . mysql_num_rows($query) . '</span>)'; ?>

对于你的删除按钮有这样的东西:

$('#theTable').delegate('button.delete', 'click', function (event) {
    $(this).closest('tr').slideUp();

    $('span.counter').text(function (index, val) {
        return (parseInt(val, 10) - 1);
    });

    event.preventDefault();
});

请注意delegate的使用:它比bind每个删除按钮的事件处理程序更有效。

您必须相应地更改表格的选择器和删除按钮。

答案 1 :(得分:1)

你可以这样做:

$('.deleteButton').click(function() {
   var curn = parseInt($('.counter').text(), 10);
   if(curn - 1 >= 0)
      $('.counter').text(curn - 1); 
});

并将您的回音更改为

 <?php echo "Today (<span class='counter'>".mysql_num_rows($query)."</span>)"; ?>

答案 2 :(得分:0)

包裹号码,以便您可以轻松选择:

<?php echo 'Today (<span id="number">'.mysql_num_rows($query).'</span>)'; ?>

然后单击删除按钮时:

// Get the number element once
var num = $('#number');

// Set an onclick event on your button
$('.delete').click(function(){

    // Find the closest table row and remove it
    $(this).closest( 'tr' ).remove();

    // num.text() will get the text inside the number element
    // parseInt is used to convert it from string to int
    // subtract 1 to update the number
    var newNumber = parseInt( num.text(), 10 ) - 1;

    // And set the new number text
    num.text( newNumber );

    // Stop the default browser action - might cause the page to reload or to scroll
    return false;
});

答案 3 :(得分:0)

将计数器输出到JavaScript var并在循环和Today()函数调用中使用它。我假设您正在尝试从服务器输出客户端函数调用?

 <?php echo "var count=".mysql_num_rows($query).";Today(count);" ?>

在删除处理程序中减少计数并再次调用今天(计数)

答案 4 :(得分:0)

尝试:http://jsfiddle.net/xMZgv/7/

Today(<span id="counter">3</span>)

<table>
    <tr><td>hello</td><td>delete</td></tr>
    <tr><td>world</td><td>delete</td></tr>
    <tr><td>hi</td><td>delete</td></tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.js"></script>
<script>

    $(function() {
        $('table tr').find('td:last').click(function() {
            $(this).parent().remove();
            $('#counter').html($('#counter').html() - 1)
        })
    })

</script>