jQuery未捕获引用错误$ foo未定义

时间:2016-06-30 16:45:55

标签: javascript jquery laravel runtime-error laravel-spark

我试图在Laravel Spark框架上使用jQuery在click上展开和折叠单个div。我的代码主要来自this question的答案。

单击selectShow文本时,警报工作正常,但控制台显示此错误" Uncaught ReferenceError:$ selectShow未定义"。即使我使用我提供的链接中的确切代码,我也会收到错误。快速搜索提到jQuery需要首先加载,但我已经将此函数放在文档就绪功能块中。此外,警报工作正常(我正在使用的其他jQuery函数),这就是为什么我不认为这是一个不正确加载jQuery的问题。

这可能是一个简单的答案,但我不知所措。感谢。

代码:

<div class="mediaContainer">
    <div class="selectShow"><span>Show Media</span></div>
    <div class="media">
        <img src="myurl.com" alt="Image unavailable">
    </div>
</div>


.mediaContainer {
    width:100%;
}
.mediaContainer div {
    width:100%;
}
.mediaContainer .selectShow {
    font-size: 12px;
    color: #0084B4;
    padding: 5px;
    cursor: pointer;
}
.mediaContainer .media {
    display: none;
}


$(".selectShow").click(function () {
    alert('Click!');
    $selectShow = $(this);
    $media = $selectShow.next();
    $(".media").not($media).slideUp().prev().text("Show Media");
    $media.slideToggle(500, function () {
        $selectShow.text(function () {
            return $media.is(":visible") ? "Hide Media" : "Show Media";
        });
    });

});

1 个答案:

答案 0 :(得分:0)

您的代码可以按原样运行,但是您可能遇到全局名称冲突的问题,而您的var str = "domain\\john"; /* only one \ used and being escaped */ str = str.replace(/\\/g, "\\\\") console.log(str)最终会被覆盖。

所以解决这个问题,用$selectShow声明局部变量。然后它们不会污染全局空间,并且可以避免命名与变量的其他用途的冲突。

var