Javascript 返回False被忽略

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

你知道为什么下面的“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">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.:-)