javascript - jQuery 包装函数中的回调

标签 javascript jquery get

我编写了一个函数来检索 html 模板,然后使用 jQuery.tmpl 绑定(bind)数据。我认为它相当整洁,封装了我需要的东西,并为我提供了一个可重用的功能。然而,我的问题是它可以改进吗?

我主要关心的是如果 $.get 方法失败怎么办,以及 callBack 函数是如何执行的。

function Bind(templateURL, templateData, templateTarget, callBack){
var req = $.get(templateURL);
    req.success(function(templateHtml) { 
        $(templateTarget).html(''); //clear
        $(templateHtml).tmpl(templateData).appendTo(templateTarget); //add deal
    callBack();
    });
 }

最佳答案

您可以将tmpl() 的结果直接传递给html()清除目标容器并同时附加新内容。您还可以链接 $.get() 的结果进入您的 success 处理程序以避免使用局部变量:

function Bind(templateURL, templateData, templateTarget, callBack)
{
    $.get(templateURL).success(function(templateHtml) { 
        $(templateTarget).html($(templateHtml).tmpl(templateData));
        callBack();
    });
}

如果 $.get() 失败,则不会发生任何事情,因为您没有注册错误处理程序。该处理程序将做什么取决于您,但您可能希望在警告框中或页面上的某处显示适当的消息。

您的第二个问题不太清楚。就目前而言,callBack 只会在成功时被调用,并且没有参数。

关于javascript - jQuery 包装函数中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008841/

相关文章:

javascript - jqSuite PHP 日期选择器对话框格式不起作用

javascript - FeathersJS REST 返回具有特定值的记录

javascript - 如何使用js查找对象数组中的重复数据?

python - 如何请求 HTML 中多重选择的所有元素?

javascript - $.ajax/$.get/$.POST/.load() 有什么区别?

javascript - 捕获 promise 而不拒绝

javascript - jQuery 事件中的三元运算符

jquery - Owl Carousel - 以不同方式设计导航中的点

javascript - 通过拖放重新排序数组

php - 使用 post 发送参数并获取到 SQL 服务器