2014-07-19 70 views
0

我真的很想尝试使用jQuery,所以请原谅我问什么可能是一个简单的问题。也许它甚至与jQuery没有关系,但无论如何,这是场景。我试图放入一个隐藏的div,我只想在用户将鼠标悬停在页面上的Learner的锚标记时显示。我已经开始只使用一个锚标签,在实现其他标签之前先让它工作。我已经下载了一个jQuery库,包括对它的引用,所以这里的一些什么,我有我的网页的头部分:为什么jQuery函数showHide()未定义?

<script src="js/jquery-1.11.1.js" type="text/javascript" ></script> 
<style type="text/css"> 
#navcontainer ul { list-style-type: none; } 
#navcontainer ul li { display: inline; } 
#navcontainer ul li a 
{ 
text-decoration:none; 
padding: .2em 1em; 
} 
</style> 

接下来我定义了一个无序列表,使用上面的造型使其水平,并且我有一个隐藏的div,当用户将鼠标移动到无序列表中的第一个锚点上时,我想要显示它。下面是相关的HTML从身体标记内:

<body> 
<div id="navcontainer"> 
<ul> 
<li><a href="index.htm">Home</a></li> 
<li><a href="#" onmouseout="showHide('dropdown1', false)" onmouseover="showHide('dropdown1', true); return false;">Learners</a></li> 
<li><a href="#">Teachers</a></li> 
<li><a href="#">Businesses</a></li> 
<li><a href="#">Contact Us</a></li> 
</ul> 
<div id="dropdown1" style="visibility:hidden;"> 
<ul> 
<li><a href="PDFs/Learners/CloStringMap.pdf">Description A</a></li> 
<li><a href="PDFs/Learners/VlaStringMap.pdf">Description B</a></li> 
<li><a href="PDFs/Learners/VlnStringMap.pdf">Description C</a></li> 
</ul> 
</div> 
<!-- other HTML code --> 
</body> 

然而,当我运行这个从浏览器(IE11)没有任何反应。使用内置于IE11中的F12 Web开发人员工具,我发现它给出了“showHide is undefined”的错误。为什么这样做? showHide()函数肯定在jquery-1-11.1.js文件中,当然这个文件在我的js文件夹中。我做了什么错,或没有考虑到?

+1

你错过了最重要的部分:''

1

有没有这样的功能showHide,你可以在你目前的情况下使用toggle()show()hide() uou将他们夫妇与$(本)。或您选择的选择器。

作为使用jQuery定位特定元素的一个示例,我们添加了类hover-learners,并将其与下面的选择器一起定位。

HTML:

<div id="navcontainer"> 
    <ul> 
     <li><a href="index.htm">Home</a> 

     </li> 
     <li><a href="#" class="hover-learners">Learners</a> 

     </li> 
     <li><a href="#">Teachers</a> 

     </li> 
     <li><a href="#">Businesses</a> 

     </li> 
     <li><a href="#">Contact Us</a> 

     </li> 
    </ul> 
    <div id="dropdown1"> 
     <ul> 
      <li><a href="PDFs/Learners/CloStringMap.pdf">Description A</a> 

      </li> 
      <li><a href="PDFs/Learners/VlaStringMap.pdf">Description B</a> 

      </li> 
      <li><a href="PDFs/Learners/VlnStringMap.pdf">Description C</a> 

      </li> 
     </ul> 
    </div> 

添加下面的JavaScript作为一个文件或在<script type="text/javascript"> code here</script>包括你的jQuery库文件之后。

的Javascript:

//包装在jQuery的ready功能一切执行JavaScript

$(document).ready(function() { 

    //select learners and apply mouseover event 
    $('.hover-learners').on('mouseover', function() { 
     $('#dropdown1').show(); 
    }); 

    //select learners and apply mouseout event 
    $('.hover-learners').on('mouseout', function() { 
     $('#dropdown1').hide(); 
    }); 

}); 

而且之前确保网页完全加载自showhide方法操纵display CSS属性我已添加

CSS:

#dropdown1 { 
    display:none; 
} 

,并从#dropdown1

工作演示在这里删除内联style="visibility:hidden"http://jsfiddle.net/robschmuecker/J6U7d/

+0

但jquery-1.11.1.js文件中有这样一个函数。这里的函数的开始: 功能显示隐藏(元素,显示){ \t变种显示,ELEM,隐藏, \t \t值= [], \t \t索引= 0, \t \t长度= elements.length; \t for(; index Rod

+0

我想知道如果我必须把一个表单标签放到页面中,并把我所有的代码,特别是在表单标签内使用JavaScript/jQuery的代码?我正在吸取我知道的吸管,但我很难过。 – Rod

+0

表单标记当然不是必需的。我已经更新了答案。 –