gpt4 book ai didi

javascript - ajax调用后jquery错误

转载 作者:行者123 更新时间:2023-11-28 08:15:41 25 4
gpt4 key购买 nike

我正在为 Jquery 对话框函数使用 onclick 事件...

$( document ).ajaxComplete(function() 
{
$("#titleName").on("click",function(e)
{
$("#userInfo").dialog("open");
e.preventDefault();
})
})

它工作正常,直到我调用 ajax 来加载其中一个 div..

$("ul#accordion li a").on('click', function (e) 
{
$("#mainContent").load(this.href);
});

ajax 调用后 onclick 抛出此错误(两次)..

TypeError : undefined is not a function

在这一行

$("#userInfo").dialog("open");

ajax 请求再次引入 JQuery 库(因为请求中的数据表需要它们)。

1)我不知道如何避免加载 JQuery 两次并同时使其正常工作。

2)我不太确定加载两次是否会导致问题。

我已经尝试在两个页面中使用它,但它不起作用

<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>

编辑:实际上,下面的答案解决了 onclick 问题(看起来 JQuery 没有加载两次),但现在使用此请求加载的数据没有应用任何样式或 JavaScript。

当我在新页面中打开这些请求时,它们工作正常。但是当使用ajax请求加载时,它只有纯数据(没有样式)。

最佳答案

错误 TypeError : undefined is not a function 意味着 .dialog 被视为未定义的元素,而不是函数,这意味着您不'没有正确导入函数。您已经提到其他 jQuery 函数正在运行,但对话框小部件来自 jQuery UI,而不是核心 jQuery 库,因此您需要确保已导入这两个函数。如果 jQuery UI 正确加载,.dialog 将被识别为函数,而不是 undefined

但是,如果您已经正确导入了 jQuery 和 jQuery UI,那么正如您所怀疑的那样,您的问题很可能来自于调用 ajax 请求时重新加载 jQuery。您可以这样包装脚本的加载,以避免再次添加它:

if (typeof jQuery == 'undefined') {  
document.write('<script type="text/javascript" src="jquery-1.11.0.min.js"></script>');
}

关于javascript - ajax调用后jquery错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620692/

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