CodeIgniter只在循环内执行一次JS

时间:2012-09-24 10:28:36

标签: jquery codeigniter foreach modal-dialog

我正在使用CodeIgniter来显示数据库中的项目列表。我想根据它的ID删除一个项目。这不是问题,没有模态框就可以正常工作。

我的问题是我正在使用一个名为reveal(http://goo.gl/3lzRN)的jQuery插件添加一个模式框来确认删除。这适用于列表中的第一项,但其他项具有与第一项相同的ID。

<a href="pages/<?php echo $row->id; ?>" class="delete">
    <i class="icon-cancel"></i><span class="delete_tooltip">delete page</span>
</a>

<aside id="modal">
    <header id="delete_page">Delete Page</header>
    <article id="modal_content">
        <p>
        Are you sure you want to delete the page<br />'<?php echo $row->title ?>'?
        </p>

        <p>This action cannot be undone.</p>

        <p>
        <a href="pages/delete_page/<?php echo $row->id; ?>" >
            <i class="icon-cancel"></i>Delete
        </a> <a href="pages/#" class="modal_cancel">Cancel</a> 
        </p>
    </article>
</aside>

上面是打开模态框及其中内容的链接。这些都在foreach循环中,但正如我所知,循环工作正常,我还没有发布它。

2 个答案:

答案 0 :(得分:0)

您不能在页面上为多个元素使用相同的ID。 ID是唯一标识符,因此大多数浏览器仅考虑第一个元素,而其他浏览器将返回意外值。

您应该为那些具有相同功能的元素使用类

答案 1 :(得分:0)

您应该使用类而不是ID。 ID应该每页只出现一次,因此这就是造成问题的原因。

类用于多次出现的项目(可重复使用的项目)。

我建议同时为模式分配唯一 ID,例如id =“modal-1”,其中1是来自$ row-&gt; id的ID;

这样,您可以轻松地通过班级访问每个模态,但可以通过其ID唯一标识。

http://jsfiddle.net/Z7vHT/1/这应该可以解决您的问题。