将事件附加到jquery中的window.on(";load";,function(){})上

将事件附加到jquery中的window.on(";load";,function(){})上,jquery,dom,Jquery,Dom,我已经编写了一些类似jquery插件的代码,根据元素之间的高度将css分配给元素。我一直在试图弄清楚如何在不在窗口中调用/包装插件的情况下使插件工作。在(“load”,function(){})上,从函数外部阻塞。我应该补充一点,如果我从外部调用它,一切都会正常运行 $(window).on("load",function(){}) 街区。我的两个问题是: 我可以为$(window).on(“load”,function(){})事件分配多少次不同的操作?如果我不止一次地分配某个内容,那么

我已经编写了一些类似jquery插件的代码,根据元素之间的高度将css分配给元素。我一直在试图弄清楚如何在不在窗口中调用/包装插件的情况下使插件工作。在(“load”,function(){})上,从函数外部阻塞。我应该补充一点,如果我从外部调用它,一切都会正常运行

 $(window).on("load",function(){}) 
街区。我的两个问题是:

  • 我可以为$(window).on(“load”,function(){})事件分配多少次不同的操作?如果我不止一次地分配某个内容,那么后续的每个分配是否都会替换第一个分配?我是否应该添加类似javascript addEventListener方法的内容

  • 如何从内部将我的操作分配给此事件

     (function( $ ) { $.fn.resizeCss = function() {}; })(jQuery);
    
    街区


  • 这里真的很难办,任何帮助都将不胜感激

    您应该能够将操作分配给该
    $(窗口)。on(“加载”…
    任意次数。使用
    .on
    的主要好处之一是,如果您选择,它可以为事件处理程序命名名称空间

    例如,在:

    $(window).on("load.loading1", function(){}) 
    
    loading1
    是事件处理程序的特定实例的名称。这非常有用,因为除了事件之外,您还可以根据处理程序的名称选择删除处理程序

    例如:

    $(window).off("load.loading1")
    
    将仅解除绑定
    加载1
    事件处理程序,其中

    $(window).off("load")
    
    将解除所有
    加载
    事件处理程序的绑定


    至于你的第二个问题,很抱歉造成混淆,但我错认为
    (function($)
    。这实际上意味着其中的代码是自动执行的。换句话说,它在自己的时间自动执行,不需要放入处理程序

    我仍然建议您在外部绑定它,因为这是更好的编码实践,通常会使您的插件更具可扩展性


    更新

    根据您的评论,我可以告诉您,您可以使
    $(窗口)。load
    不必由使用您的插件的开发人员键入,但这是一种非常糟糕的编码做法。但是,这会使您的插件的可扩展性大大降低。此外,如果您使用
    $(文档)执行此操作.ready
    ,它仅在插件的调用者不是元素的情况下才起作用。原因是调用它的元素必须由jQuery找到,并且为了找到它,文档必须已经准备好,以便它可见


    您可以做的是添加
    $(窗口).load
    处理程序在插件本身中。换句话说,它将位于用
    $.fn….
    声明的函数中。您可能还希望创建一些反馈,以便开发人员能够知道是否在加载窗口之前调用了该函数。但是,如前所述,我强烈建议不要这样做r要做的事情是在文档中记下,插件通常应该从
    $(窗口)调用。加载…
    事件。这真的应该留给开发人员。关于向加载事件添加名称空间的好答案!谢谢!不幸的是绑定到该$(文档)中的事件.ready type函数似乎不起作用。我应该补充一点,它不只是在$(文档)内.ready,但也在定义jquery插件本身的上下文中。我不确定它为什么不起作用。为了给我更好的上下文,以便我能更好地帮助您,我可以问一下您为什么要在
    文档中绑定它。ready
    ?同时,我将检查以这种方式在中声明它实际上是,valid(它应该是有效的)不是我想在文档中绑定它,而是我想编写函数,这样无论谁使用它都不必将它包装在自己的$(window)中在这种情况下,这似乎是一个不必要的步骤,应该添加到函数定义本身。v.答案很好,但在jquery插件定义中放置$(window).on(“load.function(){}”)是不起作用的“我发布了一个fidde。关于可扩展性,如果我在不影响任何其他窗口的命名空间下附加事件,我看不出有什么错。在(“加载”,function(){})事件上,正如前面所讨论的。我指的是插件的可扩展性,而不是
    $(窗口).load
    。这被认为是糟糕的编码实践是有原因的。像这样的事情应该留给开发人员去做——在这种情况下,快捷方式不仅是不明智的,而且是不受欢迎的。