我尝试了很多不同的版本,仍然无法让它发挥作用。我只是将提示放在那里以确保代码按预期工作,然后目标是将更多项目放入if语句中,但我不能让它最初工作。我已经在js文件中的任何地方放置了确认功能并且它不起作用,但是如果我把它放在带有脚本标签的实际index.php页面上它就可以正常工作了。我不知所措。此代码位于js文件中。
$(document).ready(function() {
$(function (){
$('#main-menu ul li a').each(function(){
var path = window.location.href;
var current = path.substring(path.lastIndexOf('/')+1);
var url = $(this).attr('href');
if(url == current){
$(this).addClass('active');
confirm(url);
};
});
});
});
ETA:删除了document.write。那只是另一个考验。这是页面上的标记
<div id="main-menu"><ul>
<li id="home-link"><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="process.php">Process</a></li>
<li><a href="portfolio.php">Portfolio</a></li>
<li><a href="interiordesignnews.php">Press</a></li>
<li><a href="http://domain.com/blog/" target="_blank">Blog</a></li>
<li><a href="contact.php">Contact</a></li>
</div></center>
答案 0 :(得分:2)
document.write
。它的是JavaScript的弃用功能 bad practice。
在您的情况下,由于您在加载DOM之后运行,它将擦除整个页面,然后编写"lorem"
。一旦发生这种情况,您的'#main-menu ul li a'
元素将不再存在。
另外,$(function(){ });
是$(document).ready(function(){})
的简写,因此没有理由同时使用它们。