jQuery插件不能在ajax加载的页面上工作

时间:2012-01-02 08:03:54

标签: php javascript jquery ajax

我在我的一个项目中使用jquery prettyPopin并且工作正常...问题是我希望它在使用ajax加载的php页面上工作。但它似乎不起作用......

我的问题很简单,jQuery插件是否在ajax加载的页面中工作,就像在父页面上一样?为了清楚起见,我的JS库被添加到父页面中。加载脚本中没有添加任何库。

jQuery插件是否适用于ajax页面?另外,我不想在ajax页面中包含js库。

欢迎任何帮助...... Thanx提前......

5 个答案:

答案 0 :(得分:2)

任何jquery插件也可以在ajax加载的页面中工作。但是如果你试图在ajax加载的页面中调用它,你需要在ajax完成后调用插件。

答案 1 :(得分:1)

是的,它确实有效,但您必须在加载页面后初始化任何插件。使用.load()时的示例:

$("#page").load("/page.php", function(response, status, xhr) {
    $('#selector-on-loaded-page').plugin();
});

您只需像往常一样在主页上添加插件。

答案 2 :(得分:1)

可能存在jQuery冲突,您可以像这样使用您的代码

var $jq = jQuery.NoConflict();
$jq("#page").load("/page.php", function(response, status, xhr) {
    $jq('#selector-on-loaded-page').plugin();
});

答案 3 :(得分:0)

它应该可以工作,因为包含的js可以用在加载的DOM和包含的js上。

然而,这取决于插件的工作方式以及您如何调用它。例如,如果动态应用onload或者您尝试将其包含在主代码的$(document).ready()内,它可能无效。

[编辑]根据插件的doc

例如,不要忘记再次应用插件,你必须把:

$("a[rel^='prettyPopin']").prettyPopin();

在您的.load()声明的回调中。

答案 4 :(得分:0)

因此,假设您正在以这种方式使用插件“foo”:

$(".something").foo();

在ajax请求结束时(一旦从php获取数据并创建新元素)重写同一行$(“。something”)。foo();

另一种方法是弄清楚如何以你使用插件的方式集成live