1

jquery find 函数 hide and show 不起作用,怎么回事?

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

  <script>
        $('div').hover(function() {
           $(this).find('.delete').show();
        }, function() {
           $(this).find('.delete').hide();
        });
  </script>


<div>
    Blah
    <span class="delete">Delete</span>
</div>
4

6 回答 6

6

向您的脚本添加一个文档就绪功能,它将起作用

  <script>
      $(document).ready(function(){
        $('div').hover(function() {
           $(this).find('.delete').show();
        }, function() {
           $(this).find('.delete').hide();
        });
      });
  </script>

解释:

在 div 甚至存在之前,您正在将悬停功能绑定到 div。
使用文档就绪函数,函数的绑定发生在 div 实际可用时

于 2013-04-06T08:49:21.263 回答
0

使用这样的东西:

<script>
jQuery(document).ready(function($) {
$('div').hover(function() {
           $(this).find('.delete').show();
        }, function() {
           $(this).find('.delete').hide();
        });
})
</script>
于 2013-04-06T08:50:12.043 回答
0

您需要将 jQuery 代码包装在里面$(document).ready(function(){});$(function(){});让它看到整个 DOM。

 $(document).ready(function(){
     $('div').hover(function() {
         $(this).find('.delete').show();
     }, function() {
         $(this).find('.delete').hide();
     });
 });
于 2013-04-06T08:51:27.680 回答
0

你需要一大堆其他的东西来组成一个完整的、有效的 HTML 页面和一些包装 javascript 的东西来延迟它的执行,直到文档准备好与之交互......

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function() {
    $('div').hover(function() {
        $(this).find('.delete').show();
    }, function() {
        $(this).find('.delete').hide();
    });
});
</script>
</head>
<body>

<div>
    Blah
    <span class="delete">Delete</span>
</div>

</body>
</html>

上面的 DOCTYPE 是针对 HTML5 的,这可能是你最好的选择,但你应该知道其他 DOCTYPE 是可用的

于 2013-04-06T08:54:12.730 回答
0

需要像这样包装jQuery代码:

$(document).ready(function(){
  ...
});

示例:http: //jsfiddle.net/thinkfast2008/mzx7A/

请享用 :)

于 2013-04-06T08:56:31.280 回答
0

试试这个

    <div>
        Blah
        <span class="delete">Delete</span>
    </div>


<script src="http://code.jquery.com/jquery-1.9.1.js"></script>




 <script>
            $(document).ready(function(){
            $('div').hover(function() {
               $(this).find('.delete').show();
            }, function() {
               $(this).find('.delete').hide();
            });
          });
      </script>
于 2013-04-06T08:57:29.773 回答