2011-12-24 110 views
0

我在一个名为uptoppage的自定义HTML标记中有2个表单。为什么jQuery hover()不工作?

当文档加载时,我向上滑动包含表单的元素。一旦有人再次将鼠标悬停在父元素上方,我希望它滑下。相反,没有任何反应。

这里是我的标记:

<uptoppage>controller.... 
    <uptpc> 
    <form>.....</form> 
    <form>......</form> 
    </uptpc> 
<uptoppage> 

这里的jQuery的我使用的是:

$("uptoppage").hover(function() { 
    $('uptpc', this).slideDown(); 
}, function() { 
    $('uptpc', this).slideUp(); 
}); 
+2

有没有理由不使用有效的HTML标签? – moey 2011-12-24 17:19:04

+0

我有他们所有的风格...... – 2011-12-24 17:37:32

+1

@YoungnateDaGreat - 我编辑你的问题,使其更清晰,更容易阅读。很多人会忽视那些看起来写得不好的问题,因此值得你花时间尽可能地清楚你的问题。即使是拼写和标点错误也会增加理解你的精力。我不是在讲课,我只是想帮助你在未来提出更好的问题,所以你更有可能获得帮助。您可以点击“已编辑”旁边的链接查看我所做的更改,并自行编辑以查看我是如何进行格式设置的。 – 2011-12-24 18:00:14

回答

0

手表大小的变化

我看不出有什么不对您的使用hover()或你的回调函数。我用你的榜样来修饰;我看到的主要怪异行为是,如果子元素被隐藏并导致父代变得非常小以至于从鼠标下方移出。

换句话说,jQuery正在观察您是否在元素上方悬停。如果这个元素在增长和缩小,它可能会改变,不管你是否还在它,触发悬停,然后悬停,等等,没有你的鼠标移动。所以确保你在父元素中有一些其他内容,并且/或者它有一些由CSS给它的大小。

检查您的标记

我还同意第一个注释:你不应该使用自定义元素,如果你能避免它。我给了父元素一个边框,这样我就可以看到它有多大,但是直到我用一个id代替一个自定义元素类型将它制作为div时,样式才显示出来。

如果可能的话,使用ID和类来标识标准元素而不是使用自定义元素。你的标记越是不寻常,你会对问题越不确定 - “这是我的JS的问题,还是浏览器窒息了我的自定义HTML?”

0
<script type="text/javascript"> 
    $(document).ready(function(){ 
      $('form').hover(function(){ 
      $('form').slideUp(); 
      $(this).slideDown(); 
      }); 
     }); 
</script>