我们有一个应用程序,它使用了很多jquery的东西,我们将所有的脚本添加到一个init.js文件中,这个文件有很多.live("click"), .live("hover")
等等,东西加上一些if($(".classname").length)
等添加.live点击jQuery中的函数
我怀疑它可能会不必要地减慢我们的页面(有些页面不需要一些脚本)。但是什么是更优雅的解决方案呢?我们当然不会为每个需要它的页面单独提供一个文件,这是一个很难维护的问题。有没有其他方法可以实现这一点?
我们有一个应用程序,它使用了很多jquery的东西,我们将所有的脚本添加到一个init.js文件中,这个文件有很多.live("click"), .live("hover")
等等,东西加上一些if($(".classname").length)
等添加.live点击jQuery中的函数
我怀疑它可能会不必要地减慢我们的页面(有些页面不需要一些脚本)。但是什么是更优雅的解决方案呢?我们当然不会为每个需要它的页面单独提供一个文件,这是一个很难维护的问题。有没有其他方法可以实现这一点?
在函数中包装页面特定的东西,并在每个页面上调用适当的函数。
另一种解决方案是将URL映射到函数并自动调用适用于当前URL的函数 - 然后在页面本身上不需要任何JS。
为您现场直播,你可以在身上使用委托,给身体一个特定的页面级:$('body.page-xyz').delegate('your-live-selector', 'click', function(){...})
这仅如果身上有正确的类附加一个事件处理程序。
+1我输入的内容很多。 :-)第二个选项对我来说有点过于紧密,所以我更喜欢在每个页面上都有一个内联脚本块来触发适当的设置,但是我也会将它作为一个选项加入,以防OP对此感觉不同。 – 2011-04-14 08:33:00
嗯,我会更多地关注这个委托事项。所以委托只是首先寻找身体的课程?它的功能是否与它也附加到动态创建的元素中一样? – corroded 2011-04-14 09:36:20
http://jscompress.com/ – Calum 2011-04-14 08:31:47
我不认为jscompress会在这一项上做得更好,因为它可能放缓的原因是处理所有这些现场调用 – corroded 2011-04-14 09:34:20