0

我如何计算元素一次?现在,无论何时,当我单击#totalItems 时,警报会上升多次,因为#photoId 中有许多元素?

<script type="text/javascript">
    $(document).ready(function(){ 
        photoId = $('.photoId');
        totalItems = $('#totalItems');

        $(photoId).on('click', function(){
              //alert ($(this).html()); 
              $(this).clone().appendTo(totalItems);

              $('#count').on('click', function(e){
              sizes = (totalItems.children().size()); 
              alert (sizes);
              });

              $('#count').off('click', function(e){
              sizes = (totalItems.children().size()); 
              alert (sizes);
             });       
        });          
    });
</script>
4

2 回答 2

0

替换这一行:

$(photoId).on('click', function(){

经过 :

photoId.on('click', function(){
于 2013-09-13T13:29:58.850 回答
0

$('#count').on('click', function() { ...在每次点击时附加处理程序.photoId。确保它只在文档的ready事件中完成一次。

如果您#count实际上在被克隆的 DOM 中,则需要

  1. 摆脱 ID 并用类替换它。
  2. 使用 CSS 过滤器将事件绑定到顶级容器

即是这样的:

$("#totalItems").on("click", ".count", function() { ...
于 2013-09-13T13:33:15.973 回答