我有以下功能,func resizeInputText工作正常。基本上我想在我的应用程序通过ajax成功加载数据时调用resizeAll。
在页面加载后拉出内容时,我试图将每个代码包装在.on事件中。
它无法正常工作,是否有人知道如何执行此操作或如何使用ajax加载的内容调用.each?
一如既往地谢谢!
function resizeInputText(obj) {
var boxWidth = ($(obj).val().length * 7) + 1;
if (boxWidth <= 30) {
var boxWidth = 30;
} else if (boxWidth >= 250) {
var boxWidth = 250;
}
$(obj).css({width:boxWidth});
}
function resizeAll() {
$("#right-content").on(function () {
$("input:text").each(function () {
resizeInputText(this);
});
});
}
答案 0 :(得分:4)
.on
中的resizeAll
方法没有执行该函数的事件。您可以看到各种用法on the documentation page,但基本上您需要告诉它要监听哪个事件,以及在引发该事件时该怎么做。 Ajax使用.on
方法广播您可以绑定的一些事件,在这种情况下,'ajaxSuccess'可能适合您。
但是,更好的方法是传递resizeAll
作为ajax方法的回调,该方法将在成功完成ajaxCall时执行。 jQuery ajax语法允许您通过包含选项success: resizeAll
来执行此操作。在这种情况下,您可以修改resizeAll
看起来像这样:
function resizeAll() {
$("input:text").each(function () {
resizeInputText(this);
});
}
答案 1 :(得分:0)
您只需在AJAX请求的success
回调中调用该函数即可。
答案 2 :(得分:0)
正如ThiefMaster所说,你可以这样做:
$.ajax({
url : "requested url",
data : { "data to be send "},
success : function(data) {
$.each(data, function(index,value) {
//your code goes here
});
}
});