Jquery的Html响应不能与javascript一起工作

Html response from Jquery not working with javascript

本文关键字:javascript 一起 工作 不能 Html 响应 Jquery      更新时间:2023-09-26

我发现很多类似这个问题的帖子,但我不认为我做错了,因为我没有把javascript在ajax调用的响应。

基本上ajax返回纯html,放在一个div内。这个div是在我的页面和页面已经包含对css和javascript文件的引用。

在其中一个javascript文件中我尝试渲染ajax调用返回的按钮让它看起来更像jquery ui函数所以我要做的就是这个

$(".ButtonClass").button();

这段代码在文档中。而ajax返回的html中包含了所有按钮的"ButtonClass"。

.button()适用于返回的ajax html之外的按钮,但它不适用于ajax调用返回的元素。

我认为它应该工作,因为css样式应用于结果,但我不能得到任何函数与结果一起工作,我重复我不返回javascript代码,我有这个代码在一个外部文件,在整个页面中引用

如果您想为AJAX请求返回的元素启用按钮,您应该在收到响应时再次执行它。

.button()在调用时已选择的元素上执行,其中不包括在AJAX请求发出之前调用的AJAX元素。

请注意,$(".ButtonClass")还将包括以前的.ButtonClass元素,因此它们将被转换为按钮两次。您必须只从AJAX响应中选择。

尝试呼叫

$(".ButtonClass").button();

我认为您需要在ajax调用成功终止时应用decorator函数。像这样:

$('#myelement').load('script.php', function() {
   // Now the page has some more button to decorate:
   $(".ButtonClass .ugly").button().removeClass('ugly'); 
});

正如你可能看到的,我给新按钮添加了一个"丑陋"的类,所以不要重新美化已经很漂亮的按钮:)

每次在应该是按钮的页面中引入新的标记时,必须调用.button()函数。您可以在.ready()上正确地执行此操作,但是您还应该在ajax调用的成功函数上执行此操作。

您必须在填充div之后初始化这些按钮。

如果您的div存储在,例如,一个名为$container的javascript变量中,那么在您将该内容添加到页面后运行代码$('.ButtonClass',$container).button()

在ajax的回调中,再做一次$(".ButtonClass").button();