jQuery easyconfirm插件仅在循环的第一次迭代中起作用

时间:2018-07-19 10:49:35

标签: javascript jquery

我正在使用在此处找到的easyconfirm对话框插件-http://www.projectshadowlight.org/jquery-easy-confirm-dialog/

我还使用经典的asp do while循环来打印其附加的内容,请参见下面的示例;

<% Do while not rs.EOF %>
    <a href="#" id="yesno">This link</a>
<% rs.MoveNext()
Loop %>

您明白了。

我的Jquery完全是文档;

$("#yesno").easyconfirm({locale: { title: 'Are you sure?', button: ['No','Yes']}});

$("#yesno").click(function() {
    alert("You clicked yes");
});

我遇到的问题是,对话框仅在循环中的第一个链接上工作,如果返回的结果大于1,则第一个工作,但其余部分不起作用,并且不引发任何错误,它仅添加{ {1}}到URL

任何帮助都会很棒:)

3 个答案:

答案 0 :(得分:0)

这里的问题是,对于不同的链接,您具有相同的ID,您需要为其赋予不同的ID或为其提供类属性,例如:

<% Do while not rs.EOF %>
    <a href="#" class="yesno">This link</a>
<% rs.MoveNext()
Loop %>

这将是您的新js,考虑到我们在选择器中添加了带有yesno类的“ a”元素。

$("a.yesno").easyconfirm({locale: { title: 'Are you sure?', button: ['No','Yes']}});

$("a.yesno").click(function() {
    alert("You clicked yes");
});

答案 1 :(得分:0)

查看您的源代码,看来您是通过easyconfirm id将#yesno动作绑定到DOM元素。现在,由于您的列表可能包含多个元素,因此ID绑定仅对其中之一起作用,因为标识符应该是唯一的。 那么我的建议是使用CSS类选择器。

我会选择类似的东西:

<% Do while not rs.EOF %>
    <a href="#" class="yesno">This link</a>
<% rs.MoveNext()
Loop %>

$(".yesno").easyconfirm({locale: { title: 'Are you sure?', button: ['No','Yes']}});

$(".yesno").click(function() {
    alert("You clicked yes");
});

因此,基本上,这里的jQuery绑定将通过CSS类选择器进行。

答案 2 :(得分:0)

在您的DOM中,具有相同ID的元素不能超过一个。改用类

<a href="#" class="yesno">This link</a>


$(".yesno").each(function() {
    $(this).easyconfirm({locale: { title: 'Are you sure?', button: ['No','Yes']}});
    $(this).click(function() {
        alert("You clicked yes");
    });
});