php - 无论我点击什么 div,jquery 总是隐藏相同的 div

标签 php javascript jquery codeigniter

我使用 codeigniter 构建了一个应用程序,并且我有一个显示用户消息的消息系统,这是通过 foreach 语句完成的。我在后台有一些 JS,一旦用户单击“删除”特定消息,该消息就会从 View 中隐藏,而 JS 会将消息 ID 发布到我的 Controller 并将该消息标记为已删除。但是发生的事情是,一旦用户单击删除,仅隐藏第一条消息(仅隐藏第一个 foreach 值),但所有其他消息都有单独的 ID,但不响应删除点击。我还应该注意,如果我点击任何消息的“删除”,第一条消息会隐藏,而不是我点击的消息。

这里是一些代码:

查看

<?php foreach ($rows as $r) : ?>
<li id="notification_<?php echo $r['MID']; ?>"><?php echo anchor("$r[MID]", 'X', array('class'=>'delete', 'rel'=>"$r[MID]")); ?>
<p>
<?php echo anchor("headless/view_msg/$r[MID]", $r['head'], array('rel'=>'notifications')); ?>
<?php if(strlen($r['body'] >= 74)) : ?>
<?php echo $r['body']; ?>
 <?php else : ?>
<?php echo substr($r['body'], 0, 74) . "..."; ?>
<?php endif; ?>
</p>
</li>
<?php endforeach; ?>

JS:

    $("a.delete").click(function(eve) {
    eve.preventDefault();

    var MID = $("a.delete").attr('rel');

    $.post('headless/notification_read', {
        MID: MID},

    function(html){
        if(parseFloat(html)){

            $('#notification_' + MID).hide('slow')
            console.log('success');

        }else{

            console.log('fail');
        }
    })

});

我不确定这里发生了什么,但我的猜测是 javascript 仅链接第一个 foreach 而不是其余部分(如果是这样我将如何解决这个问题)

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

$("a.delete").click(function(eve) {
    eve.preventDefault();

    var MID = this.rel; // `this` would be the element being clicked on....
    //var MID = $("a.delete").attr('rel'); this line is the problem....

    $.post('headless/notification_read', {
        MID: MID},

    function(html){
        if(parseFloat(html)){

            $('#notification_' + MID).hide('slow')
            console.log('success');

        }else{

            console.log('fail');
        }
    })
});

demo with comments

关于php - 无论我点击什么 div,jquery 总是隐藏相同的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777848/

相关文章:

jQuery 悬停在 WordPress 中不起作用

php - 函数中的硬编码数据应该是静态的吗?

php - 更改文件的单个字符

javascript - 仅在 Android 上显示 html5 视频控件

javascript - 单击未触发的下拉复选框/单选按钮项

javascript - 将变量从 jQuery ajax 传递到 nodejs

jQuery TouchSwipe 插件不适用于链接?

PHP mongodb 更新 - $push 数组到数组中

php - 对 null 调用成员函数 query();使用 PDO

javascript - 将 html 中的文本 append 到不同的部分