jQuery:PrettyPhoto API无法使用

19

我试图使用prettyPhoto API,但是Firebug显示$.prettyPhoto.open()不是一个可用的函数并且不能正常工作...

代码: http://jsbin.com/ihuje3/3/edit

$(document).ready(function(){
     $.prettyPhoto.open('http://www.microdual.com/assets/images/newsletters/doublehosting.jpg','Test','Test desc');
});
​
1个回答

41

不幸的是,你必须首先设置prettyPhoto(因为插件的编写方式),像这样:

$(document).ready(function(){
  $.fn.prettyPhoto(); //usually $("a[rel^='prettyPhoto']").prettyPhoto();
  $.prettyPhoto.open('http://www.microdual.com/assets/images/newsletters/doublehosting.jpg','Test','Test desc');
});

你可以在源代码中看到,像$.prettyPhoto.open()这样的函数是通过运行`$`来定义的。

另一个问题是该插件似乎存在与jQuery 1.4.4中引入的呼叫者上下文相关的问题,在1.4.3中正常工作(您可以在此处测试)。 这已经在论坛上报告过了,希望作者能尽快解决这个问题。


1
谢谢Nick ;) 在我的另一个脚本中,我已经启动了prettyPhoto,但是在不同的脚本中。;) - cusspvz
2
@CuSS - 欢迎 :) 你发现的这种行为确实很奇怪,我不确定作者为什么要这样做,它似乎与任何其他插件布局完全不同(并且至少应该在文档中涵盖...但我找不到)。 - Nick Craver
1
"并且至少应该在文档中有所涵盖......但我没有找到。我认为作者没有在jQuery加载时初始化代码,因为它需要设置主题选项等,这样用户就可以在调用打开或单击事件之前加载所有自定义选项。再次感谢Nick ;)" - cusspvz
我希望我能为你点赞12次!谢谢Nick。我希望你更多地参与Stackoverflow :-) - pjammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接