美文网首页
以下代码中变量 var $content 为什么在下面 bind

以下代码中变量 var $content 为什么在下面 bind

作者: Duanlv | 来源:发表于2018-03-27 10:24 被阅读10次
    $(function(){
        var $content = $(this).next();
    
        $("#para h5.head").bind("mouseover",function(){
            $content.show();        //$(this).next().show();
        }).bind("mouseout",function(){
            $content.hide();        //$(this).next().hide();
        })
    });
    

    在执行的时候,变量 $content 访问不到,如果按照注释编辑代码反而可以使用。

    引用segmentfaultagui1989解答:
    var $content = $(this).next(); //这里的$(this)的上层如果找不到对象的话,会默认指向window,而window是没有next()的,这里就应该会报错了。

    如果这里没有报错,那么这里的$content也只是特定的文档对象,而不是你以为的$(this).next()这段代码。

    而你bind里的$(this)指的是这个$("#para h5.head")文档对象。
    如果你上边的$content刚好也指向这个文档的话,就不会报错,比如把var $content = $(this).next();改成$("#para h5.head");则bind里就可以这样写:$content.next().show();

    如果var $content=$("#para h5.head").next();则bind中可以这样写:$content.show();

    相关文章

      网友评论

          本文标题:以下代码中变量 var $content 为什么在下面 bind

          本文链接:https://www.haomeiwen.com/subject/wlejcftx.html