有什么想法为什么会忽略下面的“ 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")(与aboutcontact相同)。



旁注:您也可以压缩最后三个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/

10-11 22:12
查看更多