【发布时间】:2015-12-10 03:59:38
【问题描述】:
标题很奇怪,但我会尽可能地说明情况。
我有一个带有导航栏的网站,每个选项卡都是不同的 php 文件。对于所有文件,我有一个通用的 js 和 css 文件。目录树是:
-tab1.php -tab2.php -/js/functions.js
当我在 tab2 并尝试从 tab1 获取课程时,问题就来了。 “this_row”类仅在 tab1 中,如果我在 tab2 中,则值不会得到。如果我在 tab2 中用这个类绘制一个 div 一切正常。
function showSensorNames(){
$('.this_row').each(function(){
saveNames.push($(this).find('.btn_view').text());
});
}
并且这个函数是从$(document).ready(function(){调用的
我不知道是否有任何方法可以做到这一点,也许是通过所有文件执行全局函数,或者我为每个选项卡创建不同文件的方法是否错误。我也考虑过保存到 cookie 或会话中,但我认为这不是最合适的方式。
更新: 有没有办法让标签不是不同的文件?有什么好的教程可以做到这一点吗?然后会被认出来
【问题讨论】:
-
我不清楚您是否正在离开当前页面。如果您在用户单击链接时加载了一个全新的页面,那么在 JavaScript 中就无法拥有持久的全局状态。为此,您需要使用 AJAX 使用不同的页面加载模式。根据您尝试在页面之间保留的数据,您可以使用 GET、POST、cookie 甚至 localStorage API。
-
在同一个目录(服务器)中有两个页面,从导航栏调用。第一个文件有我试图从第二个文件调用的类,但它们都共享相同的 js。
-
好吧,即使它们共享同一个 JavaScript 文件,每次您加载新页面时,您基本上都是从头开始运行代码,没有持久状态。
-
当然不行。正如您所说,tab2 页面上没有任何课程
.this_row,因此您无法访问它的内容。如果您尝试从 tab1 获取信息,那么 tab2 可能不应该是不同的选项卡。您应该更好地解释您要阅读的信息。 -
我试图在第一个选项卡中获取一些 div 的名称,然后在第二个选项卡中再次显示它。所以这不能做,不是吗?有没有办法做到这一点,或者不同的选项卡不是不同的文件的方式......
标签: javascript php jquery