Javascript JQuery-检查是否单击了每个动态添加的按钮

Javascript JQuery-检查是否单击了每个动态添加的按钮,javascript,jquery,Javascript,Jquery,我通过jQueryAjax和PHP脚本将按钮添加到元素中。添加的按钮数量是可变的。我希望能够在启用另一个操作之前检查是否单击了每个按钮 PHP脚本中的相关代码如下所示,每个按钮都有一个递增的ID: $i = 1; while ($row = mysql_fetch_array($result)) { echo "<div class='dr_feedback_btn' id='dr_" . $i++ . "'>Feedback</div>"; } 下图显示了反馈按钮

我通过jQueryAjax和PHP脚本将按钮添加到元素中。添加的按钮数量是可变的。我希望能够在启用另一个操作之前检查是否单击了每个按钮

PHP脚本中的相关代码如下所示,每个按钮都有一个递增的ID:

$i = 1;
while ($row = mysql_fetch_array($result)) {
echo "<div class='dr_feedback_btn' id='dr_" . $i++ . "'>Feedback</div>";
}
下图显示了反馈按钮

感谢您的帮助。

您可以在单击按钮时为每个按钮添加一个
“clicked”
类,然后测试是否有任何按钮没有该类:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
   $(this).addClass('clicked');
   if ($('.dr_feedback_btn').not('.clicked').length === 0) {
     // all are clicked, so enable your other action here
   }

   // other click processing here
});
<> >“代码> > <代码>类当然可以被命名为任何你想要的,并且不需要存在于你的CSS中,尽管你可以考虑给用户一些已经被点击的视觉指示(你可以使用新的类来实现)。< /p> 点击时,可以向每个按钮添加一个<代码>“点击”< /代码>类。然后测试是否有任何按钮没有该类:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
   $(this).addClass('clicked');
   if ($('.dr_feedback_btn').not('.clicked').length === 0) {
     // all are clicked, so enable your other action here
   }

   // other click processing here
});

<> >“代码>”类当然可以被命名为任何你想要的,并且不需要存在于你的CSS中,尽管你可以考虑给用户一些已经被点击的视觉指示(你可以使用新的类来实现)。.

您需要一种方法来存储之前是否单击过按钮的信息,然后在最后一次单击时,知道如何触发其他内容的显示。您可以用许多不同的方式存储这些数据。一种是使用jquery的数据属性:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
    $(this).data('clicked', true)
    var buttons = $('.dr_feedback_btn')
    var clickedButtons= buttons.filter(isClicked)
    if (clickedButtons.length === buttons.length) {
        // do your magic here
    }
});

function isClicked(idx, el) {
    return $(el).data('clicked') === true
}
您还可以更多地依赖选择器并使用html的实际数据属性:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
    $(this).attr('data-clicked', 'true')
    var buttons = $('.dr_feedback_btn')
    var clickedButtons= $('dr_feedback_btn[data-clicked=true]')
    if (clickedButtons.length === buttons.length) {
        // do your magic here
    }
});

您需要一种方法来存储之前是否单击过按钮的信息,然后在最后一次单击时,知道如何触发其他内容的显示。您可以用许多不同的方式存储这些数据。一种是使用jquery的数据属性:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
    $(this).data('clicked', true)
    var buttons = $('.dr_feedback_btn')
    var clickedButtons= buttons.filter(isClicked)
    if (clickedButtons.length === buttons.length) {
        // do your magic here
    }
});

function isClicked(idx, el) {
    return $(el).data('clicked') === true
}
您还可以更多地依赖选择器并使用html的实际数据属性:

$('#dr_container').on('click', '.dr_feedback_btn', function() {
    $(this).attr('data-clicked', 'true')
    var buttons = $('.dr_feedback_btn')
    var clickedButtons= $('dr_feedback_btn[data-clicked=true]')
    if (clickedButtons.length === buttons.length) {
        // do your magic here
    }
});

我理解你们的问题,你们需要检查按钮是否被点击。如果单击,则启用事件。。但是“我想在启用另一个操作之前检查每个按钮是否已单击”这句话造成了混乱。你能更新问题的图像吗?我理解你的问题。你需要检查按钮是否已单击。如果单击,则启用事件。。但是“我想在启用另一个操作之前检查每个按钮是否已被点击”这句话造成了混乱。你能将图像更新到你的问题吗?nnnnnn,精彩而简单!非常感谢你的帮助!nnnnnn,聪明而简单!非常感谢你的帮助!