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