附加Ajax数据后jQuery无法调用插件?

时间:2011-03-07 23:39:21

标签: javascript html jquery-plugins jquery

EDIT2:没关系,让它运转起来。 jQuery被再次包含在用ajax调用的一个脚本中。不管怎样,谢谢。

编辑:这是一个改写的问题。花了一段时间才找到问题所在。
在使用ajax加载某些内容后,调用插件函数(包括UI效果)无法正常工作。

最初的问题有.effect("pulsate",{},1000)电话,这解释了sarcastyxs的回答。现在我正在使用倒计时插件尝试相同的事情。出现同样的问题。

这是我的代码。忽略它没有多大意义,它从较大的文件中删除。代码本身就很好。例如,如果我调用fadeOut()它可以正常工作,但如果我使用.countdown.effect则会出现上述问题。

var getOrderDetails= function(id){
    var that = this;
    $.ajax({
        type: "GET",
        url: "orderDetails.php",
        data: {id: id}, 
        success: function(data){
            //$("#orderDetails").html(data);
            $("#orderDetails").unbind().click(function(){
                var status = $("#orderDetails .orderStatus").text()
                acceptOrder(id, status);
            });
        }
    });
}

var acceptOrder = function(id, status){         
    var that = this;
    $.ajax({
        type: "GET",
        url: "orderStatus.php",
        data: {action: 'set', id: id, status: status}, 
        success: function(data){
            var nowTime = new Date();
            var countdownTime = nowTime.setMinutes(nowTime.getMinutes() + 2);
            $("#waitingOrders").countdown({until: countdownTime, compact:true, format: 'MS'});
        }
    });
}

$(document).ready(function(){
    $(".order").unbind().click(function() {
        var id = $(this).find(".orderId").text();
        getOrderDetails(id);
    });
});

当我评论$("#orderDetails").html(data)行时(如代码中所示),倒数计时器会显示在orderDetails div内。 当我取消注释该行时,出现countdown is not a function错误。看看firebug中的dom,真的在第一种情况下我可以看到选择器具有.countdown功能,而在第二种情况下它没有。

我在这里想念的是什么? 有人请求帮助,我已经坚持了几天 尝试用另一个函数包装ajax成功函数并将其作为上下文传递给它this,但它没有帮助。同样的事情

1 个答案:

答案 0 :(得分:0)

您似乎缺少jquery-ui的一些核心功能。您可以从the jQuery site下载自定义jquery-ui库。

您基本上想要选择Effects core以及您想在网站上使用的其他效果。由于某种原因,effects core不是默认jQuery ui库的一部分。