2

我有以下功能, 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);
    });
});
}
4

3 回答 3

4

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

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

function resizeAll() {
    $("input:text").each(function () {
        resizeInputText(this);
    });
}
于 2012-06-09T17:11:50.200 回答
0

success您可以简单地在AJAX 请求的回调中调用该函数。

于 2012-06-09T17:07:13.173 回答
0

正如 ThiefMaster 所说,您可以执行以下操作:

$.ajax({  
url : "requested url",
data : { "data to be send "},
success : function(data) {
   $.each(data, function(index,value) {

     //your code goes here
  });
}
}); 
于 2012-06-09T17:12:07.587 回答