Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果加载另一个页面,jQuery将停止工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果加载另一个页面,jQuery将停止工作

Javascript 如果加载另一个页面,jQuery将停止工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我会重写所有的内容,因为我可能没有很好地解释我自己,很抱歉我的英语不好。 我有两个html页面:index.hmtl和info.html。 所有html页面都有一个带有页面名称的div和一个小菜单图标,当你点击图标时,菜单会出现和消失,就像facebook应用程序中的菜单一样。为了实现可见和不可见的切换,我切换了两个类。如果我打开我的html.it并点击菜单按钮,它工作正常,菜单出现并消失。 菜单是一个链接到其他html页面的ul。如果您单击某个链接,浏览器将加载该页面,例如:info.html

我会重写所有的内容,因为我可能没有很好地解释我自己,很抱歉我的英语不好。 我有两个html页面:index.hmtl和info.html。 所有html页面都有一个带有页面名称的div和一个小菜单图标,当你点击图标时,菜单会出现和消失,就像facebook应用程序中的菜单一样。为了实现可见和不可见的切换,我切换了两个类。如果我打开我的html.it并点击菜单按钮,它工作正常,菜单出现并消失。 菜单是一个链接到其他html页面的ul。如果您单击某个链接,浏览器将加载该页面,例如:info.html,该页面的上半部分页面名称中有相同的div,小图标和不同的内容。如果单击info.html页面中的图标菜单,菜单的切换将不起作用。如果我刷新info.html页面,菜单图标将显示并隐藏ul菜单

标题部分的所有页面中的我的代码是:

<div id ="header-status" data-role="header" data-position="fixed" data-theme="a">
     <img id="menu" src="img/menu.png" /> <h2>Pas.si</h2>
 </div>

 <ul id="listamenu" class="classmenua">
     <li> <a href="index.html"> Percorsi </a> </li>
     <li>  <a href="info.html"> Info </a> </li>
     <li> <a href="ARworld.html"> World </a> </li>
 </ul>

 <div class="content">
 [..........]
 </div>

<script type="text/javascript">
        $('#menu').click(function() {
                         $('#listamenu').toggleClass('classmenub', 'classmenua');
                }
          );
 </script>
返回false;不起作用。 .toggleClass'classmenub classmenua'用于切换菜单,但如果我转到另一页,则会出现相同的错误 控制台没有错误,我正在firefox上测试,最后更新:D
希望您现在能够理解XD sorry,在JQuery中,如果希望不发生click default事件,可以通过在事件处理程序的末尾添加return false来实现

$({
  $('#menu a').click(function() {
    $('#listamenu').toggleClass('classmenub classmenua');
    return false;
   });
 });
这显示了代码的一个工作示例

这很好地解释了这一点:

从jQuery事件处理程序中返回false实际上与调用传递的jQuery.event对象上的e.preventDefault和e.stopPropagation相同

e、 preventDefault将阻止默认事件发生,例如StopperPropagation将阻止事件冒泡,而return false将同时执行这两个操作。请注意,此行为不同于正常的非jQuery事件处理程序,其中,值得注意的是,return false不会阻止事件冒泡

检查,如果您向toggleClass提供两个类似的参数

第二个将被视为布尔值,这可能不是您想要的

如果只想切换类列表,请在一个参数中提供它们,但用空格分隔,如下所示:

.toggleClass('classmenub classmenua')

如果我是对的,你唯一想做的就是切换菜单。切换按钮不是一个链接,所以我们不必使用像preventDefault之类的东西

我复制了你的代码,让它正常工作。我想知道的是,你到底把jQ I放在了什么地方,应该就在

下面的示例适用于更改类。试着使用这个结构,看看它是否适合你

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id ="header-status" data-role="header" data-position="fixed" data-theme="a">
    <img id="menu" src="img/menu.png">
     <h2>Pas.si</h2>
 </div>

 <ul id="listamenu" class="classmenua">
     <li> <a href="index.html"> Percorsi </a> </li>
     <li>  <a href="info.html"> Info </a> </li>
     <li> <a href="ARworld.html"> World </a> </li>
 </ul>
<!-- Include javascript before the closing body tag </body> -->
<!-- jQuery include via CDN -->
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

<!-- Here comes your own scipt (after the include) -->
<script type="text/javascript">
        $('#menu').click(function() {
                         $('#listamenu').toggleClass('classmenub', 'classmenua');
                }
          );
 </script>

</body>
</html>

我喜欢第一种选择

你有什么错误吗?您确定在调用jQuery时加载了它吗?您是否可以进入正在使用的浏览器上的控制台,查看是否列出了任何错误?它通常也会给你行号,这样你就可以把它和你的代码对应起来。你说java停止工作是什么意思?从外观上看,您的脚本仅位于当前页面内。其他页面中是否也有相同的脚本?控制台没有给出错误:这是侧面的标题部分、菜单和页面标题,我需要在所有页面中使用相同的html+java。返回false;不行,我以前试过问这个问题。当然,在你的评论之后我又试过了,但什么也没有。。我也有同样的问题…@Lirael我在答案中添加了你的代码。@Lirael我不确定我是否理解你的问题。描述是不够的,你需要一个具体的例子和代码让每个人都看到。另外,你需要更新问题和代码示例,以反映你真正想要的。我已经上传了主要问题,抱歉我的英语不好,希望现在你能理解问题:谢谢我已经上传了主要问题,抱歉我的英语不好,希望现在你能理解问题:好的,是时候进行一些调试了。添加console.log$'listamenu'.attrclass;在单击处理程序之前。刷新前,在控制台中按info.html上的F12会显示什么?hmm ok index.html 19:40:38.681语法错误:使用//@表示不推荐使用sourceMappingURL pragmas。改为使用//jquery-1.9.1.min.js:1 19:40:38.748语法错误:使用//@表示不推荐使用sourceMappingURL pragmas。使用//jquery.mobile-1.3.2.min.js:7 19:40:38.800 classmenua index.html:59 19:40:38.825Èstata trasmessa una stringa vuota a getElementById。jquery.mobile-1.3.2.min.js:619:40:38.873 L'utilizzo di getPreventDefaultèdeprepcato。Al-suo posto Utilizare。jquery-1.9.1.min.js:3 19:40:38.900 TypeError:parentElement在刷新之前是空索引。js:121on info.html 19:40:38.681语法错误:使用/@表示不推荐使用sourceMappingURL杂注。改为使用//jquery-1.9.1.min.js:1 19:40:38.748语法错误:使用//@表示不推荐使用sourceMappingURL pragmas。使用//jquery.mobile-1.3.2.min.js:7 19:40:38.800 classmenua index.html:59 19:40:38.825Èsta
这是一个简单的方法。jquery.mobile-1.3.2.min.js:619:40:38.873 L'utilizzo di getPreventDefaultèdeprepcato。Al-suo posto Utilizare。jquery-1.9.1.min.js:3My意大利语很差,但看起来有几个javascript错误,这将停止菜单的工作。如果你把这些修好了,我怀疑上面的代码会起作用。您似乎也在使用jQuery Mobile-如果您发布了一个新问题,请确保使用该标记而不是jQuery。这在info.html中工作,但在我从菜单返回index.html时停止工作--这是一种奇怪的行为。您是否在两个文件中都粘贴了上述内容?
.toggleClass('classmenub classmenua')
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id ="header-status" data-role="header" data-position="fixed" data-theme="a">
    <img id="menu" src="img/menu.png">
     <h2>Pas.si</h2>
 </div>

 <ul id="listamenu" class="classmenua">
     <li> <a href="index.html"> Percorsi </a> </li>
     <li>  <a href="info.html"> Info </a> </li>
     <li> <a href="ARworld.html"> World </a> </li>
 </ul>
<!-- Include javascript before the closing body tag </body> -->
<!-- jQuery include via CDN -->
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

<!-- Here comes your own scipt (after the include) -->
<script type="text/javascript">
        $('#menu').click(function() {
                         $('#listamenu').toggleClass('classmenub', 'classmenua');
                }
          );
 </script>

</body>
</html>
$('document').ready(function(){
     //your code here
});