JQuery插件在ajax之后无法正常工作

时间:2013-07-03 10:45:04

标签: jquery

我尝试在bootstrap模式对话框上显示一个表单,我也想在它上面使用工具提示控件。我正在使用ajax加载函数加载模式对话框的内容。

我想使用bootstrap工具提示控件,所以我必须在加载内容时初始化。

我抓住了全局ajax完成的事件,并在此函数中输入了工具提示初始化代码。

 //Global Ajax Complete
$("body").bind("ajaxSend", function (e, xhr, settings) {
    //Sent
}).bind("ajaxComplete", function (e, xhr, settings) {
    //Complete
    afterLoad();
}).bind("ajaxError", function (e, xhr, settings, thrownError) {
    //Error
});

function afterLoad() {
    // code to execute
    $(".btn").popover();

    $(".validator").tooltip();
} 

我的问题是当内容加载并且afterLoad函数正在执行时我收到以下错误消息:

0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'popover'

bootrap js包含在html中我可以在任何页面使用它,但在模态对话框页面中。

我猜是因为模态对话框的内容是使用ajax加载的。

1

1 个答案:

答案 0 :(得分:0)

当您多次加载jQuery时会发生这种情况。不要那样做!加载jQuery时,它定义一个对象并将其分配给名称$。加载插件时,它会修改该对象以添加插件定义的新函数。当第二次加载jQuery时,它(重新)定义一个新对象并将其分配给名称$。第二个jQuery对象没有存储在第一个中的数据和附加函数。