![](/img/trans.png)
[英]prevent jquery ajax to execute javascript from script or html response
[英]Html response from Jquery not working with javascript
我发现很多与此问题类似的帖子,但我认为我做错了,因为我没有将javascript放在ajax调用的响应中。
基本上,ajax返回放置在div内的纯html。 该div位于我的页面内部,并且该页面已经包含对CSS和javascript文件的引用。
在其中的一个javascript文件中,我尝试呈现由ajax调用返回的按钮,以使用jQuery ui函数看起来不错,所以基本上我要做的就是
$(".ButtonClass").button();
这段代码在document.ready函数中,ajax返回的html包含所有按钮的“ ButtonClass”。
.button()
适用于返回的ajax html外部的按钮,但不适用于ajax调用返回的元素。
我认为它应该工作,因为将CSS样式应用于结果,但是我无法获得任何功能来处理结果,我重复一遍,我不返回javascript代码,我将此代码保存在整个页面中引用的外部文件中。
如果要为AJAX请求返回的元素启用按钮,则应在收到响应时再次执行它。
.button()
在调用时已选择的元素上执行-在发出AJAX请求之前调用时不包括AJAX元素。
请注意, $(".ButtonClass")
也将包含以前的.ButtonClass
元素,因此它们将两次转换为按钮。 您只需要从AJAX响应中选择一个即可。
尝试致电
$(".ButtonClass").button();
在ajax回调中。
我认为当ajax调用成功终止时,您需要应用装饰器函数。 遵循以下原则:
$('#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变量$container
,则在将内容添加到页面后,运行代码$('.ButtonClass',$container).button()
。
在您的Ajax回调中,执行$(".ButtonClass").button();
再次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.