我在我的一个项目中使用jquery prettyPopin并且工作正常...问题是我希望它在使用ajax加载的php页面上工作。但它似乎不起作用......
我的问题很简单,jQuery插件是否在ajax加载的页面中工作,就像在父页面上一样?为了清楚起见,我的JS库被添加到父页面中。加载脚本中没有添加任何库。
jQuery插件是否适用于ajax页面?另外,我不想在ajax页面中包含js库。
欢迎任何帮助...... Thanx提前......
答案 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