JQuery隐藏div - 导致javascript错误

时间:2010-01-18 09:57:28

标签: javascript jquery jquery-ui

我在页面中有以下html:

<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>    
<script>
        function hideIt() {
            $(this).hide("slow");
            return true;
        }         
    </script>
</head>
<body>
<div onclick="hideIt();">
         hello world
    </div>
</body>

当我点击div时,会导致以下JavaScript错误:

线:53 错误:'this [...] .style'为null或不是对象

任何解决方案?

5 个答案:

答案 0 :(得分:1)

该范围内没有this对象的定义。 改为使用选择器:

<div class="ready_to_hide">
     hello world
</div>

$('.ready_to_hide').click(function(){
   $(this).hide();
});

答案 1 :(得分:1)

this指的是当前对象。要使代码工作,您必须通过在函数调用中传递this来传递对div元素的引用。

使用jQuery的主要优点是分离标记和脚本。因此,您不会在标记内编写事件处理程序。只有在DOM准备就绪后才能编写事件处理程序。

<head>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>    
    <script>
        $(function(){
            $("#divToHide").click(function(){
                $(this).hide();
            });
        });        
    </script>
    </head>
    <body>
    <div id="divToHide">
             hello world
        </div>
    </body>

详细阅读 Unobtrusive JavaScript

答案 2 :(得分:0)

这应该解决它

<div onclick="hideIt(this);">

function hideIt(o) {
            $(o).hide("slow");
            return true;
        }     

答案 3 :(得分:0)

如果用jQuery绑定事件,

$(this)将只是你的DIV:

$('#myDiv').click(hideIt);

你正在做的方式,你需要传递对象的引用:

<div onclick="hideIt(this);">

并在你的函数中使用它:

    function hideIt(obj) {
        $(obj).hide("slow");
        return true;
    } 

答案 4 :(得分:0)

试试这个:

<script>
    function hideIt(item) {
        $(item).hide("slow");
        return true;
    }         
</script>

<div onclick="hideIt(this);">
     hello world
</div>