Javascript 无法调用方法';单击';未定义的

Javascript 无法调用方法';单击';未定义的,javascript,jquery,Javascript,Jquery,我正在尝试实现jQuery的“滑动切换”。在页面顶部(标题中),我包括: <script src="http://code.jquery.com/jquery-latest.js"></script> 当我单击它时,我得到错误: Toggle.js:1Uncought TypeError:无法调用未定义的方法“click” 我根本不知道该怎么办。div嵌套在其他div、内容持有者等中,但我不明白为什么这会成为一个问题。您应该将代码包装在$(function(){})中语

我正在尝试实现jQuery的“滑动切换”。在页面顶部(标题中),我包括:

<script src="http://code.jquery.com/jquery-latest.js"></script>
当我单击它时,我得到错误:

Toggle.js:1Uncought TypeError:无法调用未定义的方法“click”


我根本不知道该怎么办。div嵌套在其他div、内容持有者等中,但我不明白为什么这会成为一个问题。

您应该将代码包装在
$(function(){})中语句。这将确保在加载DOM后执行

目前,您的代码是在DOM完全构建之前执行的,导致对尚不存在的DOM元素的引用

例如:

$(function() {
    $('#morebutton').click(function () {
        $('#morepanel').slideToggle('slow', function () {
            // Animation complete.
        });
    });
});
看起来“#morebutton”实际上并没有选择任何东西


您是否尝试过使用Firebug或IE/Chrome等同物设置断点并从控制台运行选择器?

此时可能未加载jQuery。将您的通话包装为:

$(document).ready(function() {
  $('#morebutton').click(function () {
    $('#morepanel').slideToggle('slow', function () {
        // Animation complete.
    });
  });
})
。文件不会加载,因此jQuery不会加载

使用

例如



是否在head元素中运行脚本?然后您需要将它包装在
ready()
event中,尽管正如Aron所说,这可能是因为脚本在加载DOM之前就已经运行了!使用Aron的建议后,它不再命中我设置的断点。我遇到了问题“toggle.js:1Uncaught TypeError:Obkect”没有方法“ready”。如果我只写“$(function()){'然后它会把它捡起来,虽然现在它没有出错,也不工作。这听起来很像它没有加载JQuery或者存在冲突;你没有使用Prototype或任何其他javascript框架,是吗?不,这是页面上唯一的JQuery。甚至没有太多其他javascript。当然没有使用$。结果是什么在浏览器上的js控制台中ping$或jQuery?如果未定义,您肯定没有加载jQuery。很高兴知道,谢谢。我已经替换了它,但它似乎是许多问题之一,仍然不起作用。感谢您的响应。我已经用这个包住了它,尽管我确信这离它的正常工作又近了一步它不再出错,也不再命中任何断点,仍然看起来什么都不做。有进一步的建议吗?
$(function() {
    $('#morebutton').click(function () {
        $('#morepanel').slideToggle('slow', function () {
            // Animation complete.
        });
    });
});
$(document).ready(function() {
  $('#morebutton').click(function () {
    $('#morepanel').slideToggle('slow', function () {
        // Animation complete.
    });
  });
})
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>