【问题标题】:Reload function after Ajax callAjax 调用后重新加载函数
【发布时间】:2013-09-11 10:47:43
【问题描述】:

我有一个加载到 document.ready 的插件比率 (http://wbotelhos.com/raty),页面内容在单击重新加载 DOM 的一部分的按钮时发生更改,并且文档尚未准备好“重新计算”,我将不重新加载所有javascript(还有其他类似的行为)我尝试了这个解决方案但没有成功

function star(){
alert("star");
...code plugin...
}

$(document).ready(function() {
    star();
});

$.ajax({
        ..code.. 
        done: function(creaStella) {
            alert("D");
            star();
        },
        complete:function(){
            alert("C");
star();
        },

    });

调用 ajax 后我有 alert("star") 但我的 div 没有填充

【问题讨论】:

  • 这只是一个断言。什么问题???

标签: javascript jquery ajax


【解决方案1】:

$.ajax 的错误使用

 $.ajax({
    ..code..
    success: function(creaStella) {  
         //code to populate div goes here
        alert("complete");
        star();
    }
}).done(function(){
    //or here
   alert("complete2");
 });

使用success/done作为show(或两者)。

【讨论】:

  • 看不到我的插件,因为我必须在我的 star() 中执行此操作:$('#star').raty();在我的 DOM
  • 那么你是否传递了一些像{ score: 3 }这样的参数?
  • 如果我这样做 $('#star').raty();在 chrome 控制台中,我看到了我的插件
【解决方案2】:

我以这种方式解决..(promise().done) 在不工作之前还使用 jquery validate 插件形成

function star(){
    //plugin star    
}

$(document).ready(function() {
    formJqueryValidate1();
    formJqueryValidate2();
    star();
});


function formJqueryValidate1() {
    //my check

function formJqueryValidate2() {
    //my check
}


$.ajax({

    success: function(msg) {
        $('#myid').html(msg.template).promise().done(function(){
            formJqueryValidate1();
            formJqueryValidate2();
            star();
        });
    }

}

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多