2009-02-07 20 views
1

我的网页与不同的网站应该只加载一个.js文件进行缓存优化。 加载文件时出现问题。它将每个页面上的监听器应用到表单元素(例如),所以最后一页的表单就像它应该那样工作,其他的不会导致他们的操作被覆盖。jQuery不同的页面与一个.js文件不同的动作

所以我的问题,我怎么能说它应该只适用于这个网站importent听众的脚本。

我正在使用jQuery框架。

回答

0

用一个简单的ID(比如“page1”和“page2”)将每个页面包装在不同的div中。然后在您的JavaScript抓住元素与ID:

$('#page1 div').show(); 
$('#page2 div').hide(); 

这将显示页面1上的所有div并隐藏它们全部在page2上。

+0

不是很性感? – Thomaschaaf 2009-02-07 12:36:11

4

您对浏览器进行优化的尝试与您的不同逐页行为有冲突。我不会把它全部塞入到一个js文件中。考虑可维护性,模块化。

您可以将常见/共享代码放入一个js文件,并将其包含在所有页面中。浏览器仍然会缓存所有内容,只需要检查是否自上次获取它之后修改了它,就必须提出额外的请求。但至少你的理智仍然会受到控制。

但无论如何,这里的答案:

第1页:

<body id="page1">...</body> 

第2页:

<body id="page2">...</body> 

等,现在在monster.js当你连接你的行为第1页:

$(document).ready(function() { 
    if(this.body.id != 'page1') 
     return; 

    // proceed as before 
}) 

同为部连接行为,第2个元素:

$(document).ready(function() { 
    if(this.body.id != 'page2') 
     return; 

    // proceed as before 
}) 

相关问题