JQuery仅适用于警报
JQuery only works with alert
此代码仅适用于警报。删除警报后将不会执行代码:
$(document).ready(function() {
$('#topmenu').load('/include/topmenu.htm');
});
$(window).load(function() {
var pagePath = window.location.pathname;
var pageSplit = pagePath.split('/');
var pageSection = pageSplit[1];
alert('hi');
$('#topmenu a').each(function() {
var path = this.pathname;
var section = path.split('/')[1];
if (section == pageSection) {
$(this).addClass('selected');
}
});
});
<a href="/section1/index.asp">Section1</a>
<a href="/section2/index.asp">Section2</a>
<a href="/section3/index.asp">Section3</a>
警报后面的代码似乎只在警报存在时识别pageSection值,否则,就不会定义该值。
$('#topmenu a')
选择器是否在前面的pageSection代码有足够的时间运行之前执行?处理这种情况的正确方法是什么?
发生这种情况是因为您的菜单加载速度不够快。您应该改为对load()
应用回调。
$(document).ready(function() {
$('#topmenu').load('/include/topmenu.htm', function() {
var pagePath = window.location.pathname;
var pageSplit = pagePath.split('/');
var pageSection = pageSplit[1];
$('#topmenu a').each(function() {
var path = this.pathname;
var section = path.split('/')[1];
if (section == pageSection) {
$(this).addClass('selected');
}
});
});
});
相关文章:
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- Jquery Ajax POST不工作.适用于GET
- Javascript仅适用于jQuery mobile中的页面刷新
- jQuery放大版不适用于Chrome和Safari,但适用于Firefox
- jQuery Toggle不适用于本地和我的网站,但适用于jsFiddle
- jQuery适用于Chrome、Firefox、IE,但不适用于iPhone
- 使用Jquery更改css样式适用于id's、 不在课堂上
- jquery脚本仅适用于firefox
- CSS/JQuery/Javascript加载图标仅适用于firefox
- jquery 2.2 serializeArray()适用于Firefox、Chrome,但不适用于IE(11)
- 使Javascript/JQuery视差幻灯片效果适用于类
- jQuery scrollTop()-仅适用于Firefox,不适用于Chrome
- 如何在mvc中使用ajax jquery上传文件仅适用于IE9
- 从jQuery调用Web服务失败适用于python
- 日历不适用于jQuery 1.9.1(但它适用于jQuery 1.7.1)
- 我的代码适用于jQuery 1.3.2,但不适用于1.6.4
- 如何使用适用于jQuery和jQuery Mobile的Google Map v3插件获取路线
- 代码适用于jquery 1.8.3,但不适用于1.9.1及更高版本
- 该函数适用于jquery 1.4.2,但不适用于jquery 1.9.1
- 从标签返回文本,其中最外层的HTML标签适用于jquery中的所有文本节点