jquery多个警报

时间:2013-09-13 13:25:33

标签: javascript jquery

我怎么能算一次元素? 现在,外翻时间,当我点击#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>

2 个答案:

答案 0 :(得分:0)

替换此行:

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

通过:

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

答案 1 :(得分:0)

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

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

  1. 删除ID并将其替换为类。
  2. 使用CSS过滤器将事件绑定到顶级容器
  3. 即。像这样的东西:

    $("#totalItems").on("click", ".count", function() { ...