Javascript 返回False被忽略
你知道为什么下面的“return false”会被忽略,并在新窗口中打开URL页面吗?单击时,外部URL应加载到content div中 我的HTML:Javascript 返回False被忽略,javascript,jquery,html,css,Javascript,Jquery,Html,Css,你知道为什么下面的“return false”会被忽略,并在新窗口中打开URL页面吗?单击时,外部URL应加载到content div中 我的HTML: <div id="maincontainer"> <div id="mainnav"> <a class="menuitem" id="home" href="#">Home</a> <a class="menuitem" id="about" href="about.html">Ab
<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
、#about
和#contact
元素没有后代a
元素,因此您的选择器不正确,事件根本没有被钩住。将$(“#主页a”)
更改为简单的$(“#主页”)
(关于,联系人的也一样)
旁注:您还可以压缩最后三个单击
处理程序,因为它们都做相同的事情,唯一的区别是哪个元素没有隐藏:
$('#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)
以避免隐藏当前元素。您的#home
、#about
、和#contact
元素没有后代元素,因此您的选择器不正确,事件根本没有被钩住。将$(“#主页a”)
更改为简单的$(“#主页”)
(关于,联系人的也一样)
旁注:您还可以压缩最后三个单击
处理程序,因为它们都做相同的事情,唯一的区别是哪个元素没有隐藏:
$('#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)
以避免隐藏当前元素。#关于a
等。不匹配任何内容<代码>#关于一个
将匹配如下内容:
<div id="about"><a href="example.html">this</a></div>
或者,真的,只是:
$('#about')
因为ID是唯一的。#关于一个
等等。不匹配任何内容<代码>#关于一个
将匹配如下内容:
<div id="about"><a href="example.html">this</a></div>
或者,真的,只是:
$('#about')
由于ID是唯一的。当遇到此类问题时,您最好打开浏览器中内置的调试器。在大多数浏览器上,它是F12或Ctrl+Shift+I(或Mac上的Cmd+Option+I)。导航到“源代码”窗格,找到代码,在空白处单击以设置断点,然后观察代码运行。在这种情况下,您会发现,click
处理程序中的断点根本没有到达。当遇到这种问题时,最好打开浏览器中内置的调试器。在大多数浏览器上,它是F12或Ctrl+Shift+I(或Mac上的Cmd+Option+I)。导航到“源代码”窗格,找到代码,在空白处单击以设置断点,然后观察代码运行。在本例中,您会发现,click
处理程序中的断点从未到达过。就是这样!谢谢我应该看到的。@paulja:很高兴这有帮助。我在上面添加了一个旁注,顺便说一句,您可以将这四个处理程序中的三个组合起来。
click
handlers.:-)成功了!谢谢我应该看到的。@paulja:很高兴这有帮助。我在上面添加了一个旁注,顺便说一句,您可以将这四个处理程序中的三个组合起来。
click
handlers.:-)