Javascript 在jquery中添加.live to click函数

Javascript 在jquery中添加.live to click函数,javascript,jquery,Javascript,Jquery,我们有一个应用程序,它使用了很多jquery的东西,我们将所有的脚本添加到一个init.js文件中,这个文件包含了很多.live(“click”)、.live(“hover”)等,加上一些if($(“.classname”).length)等内容 我怀疑这可能会不必要地减慢我们的页面速度(有些页面不需要脚本)。但有什么更优雅的解决方案呢?我们当然不希望每个需要它的页面都有一个单独的文件,这很难维护。有没有其他方法可以实现这一点?将特定于页面的内容包装在函数中,并在每个页面上调用相应的函数 另一个

我们有一个应用程序,它使用了很多jquery的东西,我们将所有的脚本添加到一个init.js文件中,这个文件包含了很多
.live(“click”)、.live(“hover”)
等,加上一些
if($(“.classname”).length)
等内容


我怀疑这可能会不必要地减慢我们的页面速度(有些页面不需要脚本)。但有什么更优雅的解决方案呢?我们当然不希望每个需要它的页面都有一个单独的文件,这很难维护。有没有其他方法可以实现这一点?

将特定于页面的内容包装在函数中,并在每个页面上调用相应的函数

另一个解决方案是将URL映射到函数,并自动调用适用于当前URL的函数——这样,页面本身就不需要任何JS

对于实时事件,您可以在主体上使用委托,并为主体指定一个特定于页面的类:
$('body.page xyz').delegate('your-live-selector','click',function(){…})


仅当主体具有正确的类时,才会附加事件处理程序。

您可以使用它从主js文件加载其他js文件。

+1与我键入的内容基本相同。:-)第二个选项对我来说有点过于紧密,所以我更喜欢在每个页面上使用内联
脚本
块来触发适当的设置,但我也打算将其作为一个选项,以防OP对它有不同的感觉。嗯,我将更深入地研究代理的事情。所以,委托只是首先查找主体的类?它的功能是否也与live相同,在live中它还附加到动态创建的元素?如果希望进一步增加HTTP请求开销,可以这样做。最佳实践是最小化HTTP请求。我认为jscompress在这方面不会做得更好,因为它可能会减慢处理所有这些实时调用的速度