每个函数 jquery.这是正确的吗?

发布于 2024-09-08 09:48:34 字数 266 浏览 9 评论 0原文

 $('.dragbox').each(function(){
        $('.close').click(function(){
            $(this).parent().hide();
        }),
        $('.colpase').click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    
 $('.dragbox').each(function(){
        $('.close').click(function(){
            $(this).parent().hide();
        }),
        $('.colpase').click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

尐偏执 2024-09-15 09:48:34

考虑到jquery作为一个包装集(集合)工作,我认为你不需要each方法,只是

$('.dragbox').find('.close').click(function(){
    $(this).parent().hide();
})
$('.dragbox').find('.colpase').click(function(){
    $(this).siblings('.dragbox_content').toggle();
})

处理程序将应用于所有匹配的元素,而不需要each。

这将找到 .dragbox 项目内的所有 .close 和 .colpase 我认为这就是您想要的...

编辑以在中使用查找以获得轻微的性能提升。谢谢丹/亚历克斯。

Considering jquery works as a wrapped set (collection) i dont think you need the each method, just the

$('.dragbox').find('.close').click(function(){
    $(this).parent().hide();
})
$('.dragbox').find('.colpase').click(function(){
    $(this).siblings('.dragbox_content').toggle();
})

the handlers will be applied to all matched elements without the need for the each.

this will find all of the .close and .colpase inside of the .dragbox item(s) i assumed that is what you were after...

edited to use find in order to gain slight performance improvement. Thanks Dan/Alex.

一个人的旅程 2024-09-15 09:48:34

不。大概您希望将单击处理程序应用于每个拖动框中的匹配元素。您可以这样做:

 $('.dragbox').each(function(){
        $('.close', this).click(function(){
            $(this).parent().hide();
        }),
        $('.colpase', this).click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    

如果您只想全局添加处理程序,则不需要each。

No. Presumably you want to apply the click handlers to matching elements within each dragbox. You can do that with:

 $('.dragbox').each(function(){
        $('.close', this).click(function(){
            $(this).parent().hide();
        }),
        $('.colpase', this).click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    

If you just wanted to add the handlers globally, you wouldn't want the each.

玩套路吗 2024-09-15 09:48:34

看起来您不需要each() 函数。您可能会多次将事件处理程序应用于对象。只是:

    $('.close').click(function(){
        $(this).parent().hide();
    });
    $('.colpase').click(function(){
        $(this).siblings('.dragbox_content').toggle();
    });

应该能解决问题。

It doesn't look as if you need the each() function there. You may be applying the event handlers to the objects multiple times. Just:

    $('.close').click(function(){
        $(this).parent().hide();
    });
    $('.colpase').click(function(){
        $(this).siblings('.dragbox_content').toggle();
    });

Should do the trick.

一生独一 2024-09-15 09:48:34

如果您在“each”中将“parent”引用为实际的“.dragbox”

$('.dragbox').each(function(){

  var self = this;

  $(self).find('.close').bind("click", function(){

    $(self).hide();

  }); // <-- ","?

  $(self).find('.colpase').bind("click", function(){

    //This line confuses me because you could do the same in the selector for the click event
    //unless you do have more things in the function
    $(this).siblings('.dragbox_content').toggle();

  });

  /*
  $(self).find('.colpase').siblings('.dragbox_content').bind("click", function(){
    $(this).toggle();
  });
  */

}); 

if you're referring to "parent" to actual ". dragbox" in "each"

$('.dragbox').each(function(){

  var self = this;

  $(self).find('.close').bind("click", function(){

    $(self).hide();

  }); // <-- ","?

  $(self).find('.colpase').bind("click", function(){

    //This line confuses me because you could do the same in the selector for the click event
    //unless you do have more things in the function
    $(this).siblings('.dragbox_content').toggle();

  });

  /*
  $(self).find('.colpase').siblings('.dragbox_content').bind("click", function(){
    $(this).toggle();
  });
  */

}); 
想你只要分分秒秒 2024-09-15 09:48:34
function set_colors(pick_color)
{
    var color_code=pick_color;
    $('#'+ color_owner).parent().css('background-color',color_code);
}
function set_colors(pick_color)
{
    var color_code=pick_color;
    $('#'+ color_owner).parent().css('background-color',color_code);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文