jQuery .each usage with ajax 加载的内容

jQuery .each usage with ajax loaded content

本文关键字:加载 ajax each usage with jQuery      更新时间:2023-09-26

我有以下函数,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);
    });
});
}

resizeAll中的 .on 方法没有为其执行函数的事件。您可以在文档页面上看到各种用法,但基本上您需要告诉它要侦听哪个事件,以及引发该事件时该怎么做。Ajax 广播了一些您可以使用 .on 方法绑定的事件,在这种情况下,"ajaxSuccess"可能是适合您的事件。

但是,更好的方法是传入resizeAll作为 ajax 方法的回调,该方法将在成功完成 ajaxCall 时执行。jQuery ajax 语法允许您通过包含选项 success: resizeAll 来执行此操作。在这种情况下,您可以将resizeAll修改为如下所示:

function resizeAll() {
    $("input:text").each(function () {
        resizeInputText(this);
    });
}
您只需在

AJAX 请求的success回调中调用该函数即可。

正如ThiefMaster所说,你可以做这样的事情:

$.ajax({  
url : "requested url",
data : { "data to be send "},
success : function(data) {
   $.each(data, function(index,value) {
     //your code goes here
  });
}
});