JQuery函数没有执行

时间:2012-06-16 21:54:41

标签: javascript jquery wordpress

这应该是超级简单的。第一个代码块工作,但是当我将它包装在一个函数中并尝试调用该函数时,它不起作用。

此作品

$(document).ready(function() {

        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();     

});

这不起作用:

$(document).ready(function() {

        function hideatstart() {

        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();     
        }

        hideatstart();
});

更新:在查看接受的答案后,我能够获得正常工作的代码。它涉及代码行之间没有任何空格,这将允许插入p标签。最佳做法是将JQuery删除到一个单独的脚本,我将这样做。以下代码有效:

$(document).ready(function() {
    function hideatstart(){
        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();
        }
    hideatstart();
});

1 个答案:

答案 0 :(得分:2)

我在您的实际网站上检查了HTML,发现您的代码段输出如下:

<div class="art-postcontent">
    <!-- article-content -->
    <!-- [snipped] -->
    <p><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><br />
<script type="text/javascript">
    $(document).ready(function() {</p>
<p>         function hideatstart() {</p>
<p>         $("#groups-image").hide();
            $("#quiz-image").hide();
            $("#members-image").hide();     
            }</p>
<p>         hideatstart();
    });
</script></p>
    <!-- [snipped] -->
</div>

正如您所看到的,WordPress的wpautop过滤器将您的行包裹在段落中。

如果您需要在某个地方注入脚本,最好通过在WordPress帖子或小部件中粘贴代码,使用插件或主题函数以及来实现。所有常规WordPress内容类型都被转义以防止可能的恶意注入。您似乎正在使用自定义art帖子类型,通常会获得类似的处理方式。有一些方法可以阻止内容被转义,但您应该认真考虑将脚本代码移到其他位置。