gpt4 book ai didi

javascript - 为什么我不能在任何地方为 jQuery 使用 <script> 标签?

转载 作者:行者123 更新时间:2023-11-30 08:37:48 37 4
gpt4 key购买 nike

我认为这是一个范围问题。我希望在 Joomla 模块中使用 jQuery 并将代码包含在 php 源代码的标签中。这有效:

<script> alert("foo"); </script>

但这不是:

<script> alert($.jquery); alert(jQuery.jquery); </script>

这应该会产生至少 1 个带有 jQ​​uery 版本的警告框,但警告显示“未定义”。网页<head> section已经包含了jQuery,在上面<script>之前的html流中使用了它.我不相信 <script> block 定义了一个新的、独立的脚本范围/上下文,但这就是它的行为方式。

最佳答案

添加.fn.:

alert(jQuery.fn.jquery);
// or
alert($.fn.jquery);

或者尝试将 jQuery 用作函数:

alert(jQuery().jquery);
// or short:
alert($().jquery);

Michael 指出了另一个:

alert(jQuery.prototype.jquery);
// so we can also add
alert($.prototype.jquery);

如果你想让你的代码工作:

// add somewhere before:
jQuery.extend(jQuery, {jquery: jQuery.fn.jquery});

// Than this should work just fine:
alert(jQuery.jquery);
alert($.jquery);

通过等于jQuery.fn.jquery.jquery 扩展JQuery 对象($jQuery)。

如您所见,我们可以向 jQuery 添加任何属性。让我们做 jQuery.version:

$.extend($,{version:$().jquery});

关于javascript - 为什么我不能在任何地方为 jQuery 使用 &lt;script&gt; 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859265/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com