gpt4 book ai didi

jQuery 未定义(在 [Symfony] 模板环境中)

转载 作者:行者123 更新时间:2023-12-01 00:36:08 24 4
gpt4 key购买 nike

我正在尝试显示一个使用 jQuery 的页面。页面中实现的 AJAX 功能不起作用。

我正在使用 FF 进行调试。当我查看控制台面板时,我看到以下错误:“jQuery 未定义”。啊,我认为这是一个简单的问题 - 也许 jQuery 文件没有被正确包含,或者没有找到等等。所以我看一下 HTML 并单击节点 - 你瞧,jQuery 脚本已经被正确包含在页面中。

虽然引用 jQuery 的页面中没有其他 js 库使用“$”(如原型(prototype)),但我在 jQuery 逻辑中调用了 noConflict() 方法,以防万一我稍后使用冲突的库阶段。

[编辑]

我认为问题与我在模板环境(准确地说是 Symfony 1.4)中使用 jQuery 的文件有关。对于那些不熟悉 Symfony 模板系统的人来说,本质上, View 模型由一个“布局”文件(模板)组成,然后用其他信息(我们称之为“页面内容”)进行装饰(装饰器模式) )。

最终页面大致如下所示:

<html>
<head>
<script type="text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
</head>
<body>
<!-- page contents go here -->
</body>
</html>

我正在将 jQuery 加载到模板中(即 Symfony 术语中的“布局”)。

这样做的原因是 JQ 库缓存在客户端,并且可用于需要它的页面。动态页面(其内容进入布局的“页面内容”部分)将拥有自己的 jQuery 逻辑。这(使用下面 Mark Schultheiss 的答案中提供的“包装函数”想法)如下所示:

<script type="text/javascript">
/*<![CDATA[*/
jQuery(function()
{
jQuery.noConflict();
jQuery(document).ready(function(){
jQuery("div.tpaccordion div.accItem").hide();
jQuery("#latestVideosHolder").show();
jQuery("div.tpaccordion h3").click(function(){
jQuery(this).next().slideToggle("slow")
.siblings("div.accItem:visible").slideUp("slow");
jQuery(this).toggleClass("active");
jQuery(this).siblings("h3").removeClass("active");
});
});
});
/*]]>*/
</script>

**[Edit2]**更正了语法错误。现在我又回到了 jQuery 未定义错误。 :(

最佳答案

它在加载脚本/DOM 之前运行。把 jQuery.noconflict();在 jquery 包装器中

jQuery(function()
{
jQuery.noConflict();
});

如果您确实认为您可能需要保护自己:

  (function($)
{
$.noConflict();
})(jQuery);

也可以

编辑:修复了一些语法错误

关于jQuery 未定义(在 [Symfony] 模板环境中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093637/

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