Javascript JQuery导航栏默认不工作

Javascript JQuery导航栏默认不工作,javascript,jquery,Javascript,Jquery,我一直在试图找出我的测试代码出了什么问题。默认设置不起作用。警报即将发出,但链接正在被跟踪。我的代码有什么问题 <html> <head> <title>JQuery Testing</title> <script type="text/javascript" src="./jquery-1.10.2.min.js"></script> </head> <body>

我一直在试图找出我的测试代码出了什么问题。默认设置不起作用。警报即将发出,但链接正在被跟踪。我的代码有什么问题

<html>
  <head>
    <title>JQuery Testing</title>
    <script type="text/javascript" src="./jquery-1.10.2.min.js"></script>
  </head>
  <body>
    <a href="#" class="Links1" id="link1" onclick="nav_bar($(this));">Nav Bar Link 0</a><br/>
    <script type="text/javascript">
      function nav_bar(thisObject){
        var $objectID = thisObject.attr("id");
        var $objectClass = thisObject.attr("class");
        alert("A Link with Class : " + $objectClass + ", And ID Of : " + $objectID + " Was. Clicked!");
        thisObject.preventDefault();
      }
    </script>
  </body>
</html>

由于已使用onclick属性附加事件,因此需要返回false以防止出现默认行为:

<a href="#" class="Links1" id="link1" onclick="return nav_bar(this);">Nav Bar Link 0</a><br/>
或者,如果通过jQuery附加事件,则可以使用preventDefault,但请注意,需要在事件上调用它,而不是在引发事件的元素上调用它:

<a href="#" class="Links1" id="link1">Nav Bar Link 0</a><br/>

方法preventDefauls属于事件,而不是对象。 我修正了你的代码:

函数nav_bare,thisObject{ var$objectID=thisObject.attrid; var$objectClass=thisObject.attrclass; alertA类为+$objectClass+,ID为+$objectID+的链接已被单击!; e、 防止违约; } JQuery测试
您传递了一个jQuery对象,该对象没有默认方法。你也必须传递事件,它具有上述方法。这就解决了它。亚历山大·达扬。谢谢!!我希望这个系统可以投票选择多个答案。你的回答真的教会了我一些新的东西@Rory McCrossan。非常感谢!