0

我该如何运行这个脚本,试图在 html 文件中运行它,但它似乎不起作用..

我希望此代码位于单个 html 文件中,可以吗?还是我需要不同的文件? http://jsfiddle.net/ambiguous/jcnMa/1/

<script type="text/javascript">
$('.question, .answer')
    .css("display", "none");
$('.section')
    .click(function ()
{
    var $others = $('.question:visible')
        .not(this);
    $others.next('.answer')
        .hide();
    $others.slideToggle(500);
    $(this)

        .next('.question')
        .slideToggle(500);
});
$('.question')
    .click(function ()
{
    $(this)
        .next('.answer')
        .slideToggle(500);
});​
</script>
4

3 回答 3

2

首先确保您包含 jQuery 库:

<script src="path/to/jquery.min.js"></script>

确保你没有在这些标签中包含 jQuery,所以你有:

<script src="path/to/jquery.min.js"></script>
<script>
    /* Your jQuery here */
</script>

然后确保您使用的是$(document).ready(), or $(window).load(), 处理程序:

<script src="path/to/jquery.min.js"></script>
<script>
    $(document).ready(
        function(){
            /* Your jQuery here */
        });
</script>

$(document).ready()(or )的要求$(window).load()是确保 DOM 已构建,并且存在要绑定事件的元素。如果没有这些处理程序,浏览器将在遇到您的脚本时尝试绑定事件,而无需等待元素存在或创建,这会导致事件绑定不起作用。

于 2012-11-04T10:23:05.897 回答
0

将此代码放在正文关闭标记之前

Your Code 
</body>
于 2012-11-04T10:01:41.457 回答
0

我会这样:

<head>
    ...
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('.question, .answer').css("display", "none");
            $('.section').click(function ()
            {
                var $others = $('.question:visible').not(this);
                $others.next('.answer').hide();
                $others.slideToggle(500);
                $(this).next('.question').slideToggle(500);
            });
            $('.question').click(function ()
            {
                $(this).next('.answer').slideToggle(500);
            });​
        });
    </script>
    ...
</head>

首先,您需要确保 jquery lib 已加载,然后您可能会注意到您的代码引用了 DOM 中的对象,因此您只能在页面加载时(或在正文代码中输入它们之后)访问它们。我更喜欢尽可能将我的 js 代码存储在 head 部分。

于 2012-11-04T10:52:51.497 回答