有什么想法为什么会忽略下面的“ return false”并在新窗口中打开URL页面?单击时,应将外部URL加载到内容div中。
我的HTML:
<div id="maincontainer">
<div id="mainnav">
<a class="menuitem" id="home" href="#">Home</a>
<a class="menuitem" id="about" href="about.html">About</a>
<a class="menuitem" id="contact" href="contact.html">Contact</a>
</div>
<div id="content"></div>
<div id="footer">
<p><a class="menuitem" id="find" href="find.html">Find...</a></p>
</div>
</div>
</div>
我的剧本:
$('#home a').click(function(){
$("#content").hide();
$("#slider1_container").fadeIn();
});
$('#about a').click(function() {
$("#slider1_container, #contact, #find").hide();
var url=$(this).attr('href');
$('#content').load(url);
return false;
});
$('#contact a').click(function() {
$("#slider1_container, #about, #find").hide();
var url=$(this).attr('href');
$('#content').load(url);
return false;
});
$('#find a').click(function() {
$("#slider1_container, #about, #contact").hide();
var url=$(this).attr('href');
$('#content').load(url);
return false;
});
最佳答案
您的#home
,#about
和#contact
元素没有后代a
元素,因此您的选择器不正确,并且该事件根本没有被钩住。将$("#home a")
更改为简单的$("#home")
(与about
,contact
相同)。
旁注:您也可以压缩最后三个click
处理程序,因为它们都执行相同的操作,唯一的区别是未隐藏哪个元素:
$('#home a').click(function(){
$("#content").hide();
$("#slider1_container").fadeIn();
});
$("#about, #contact, #find").click(function() {
$("#slider1_container, #about, #contact, #find").not(this).hide();
var url=$(this).attr('href');
$('#content').load(url);
return false;
});
请注意使用
.not(this)
以避免隐藏当前元素。关于javascript - 返回False被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25372655/