作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
prettyphoto中有没有让我传递一个参数给回调函数
这是我目前的设置
<link rel="stylesheet" href="/css/prettyPhoto.css" type="text/css" media="screen" charset="utf-8" /><script src="/js/jquery.prettyPhoto2.js" type="text/javascript" charset="utf-8"><script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $("a[rel^='prettyPhoto']").prettyPhoto({ callback: function() { $.post('/course/close-video', {topic_id: '13'}); } }); });</script><a href="/course/play-video/topic_id/<?php echo $topic->topic_id;?>?iframe=true&width=470&height=340" rel="prettyPhoto" title="<?php echo $topic->topic_name;?>"><img src="/images/videos/" width="170" height="103" alt="topic_name;?>"/></a>
注意:我在回调中将主题值硬编码为 13 - 但这是应该根据单击哪个链接而出现的值。
页面中有多个这样的 href 标签,每个标签都有唯一的 topic_id
那么如何将唯一的 topic_id 传递给回调函数
非常感谢
最佳答案
我检查了源代码,Prettyphoto 不支持它。但是,您可以修改 prettyphoto 的源。
在版本 1.3.4(未压缩)中,您必须更改回调函数,以支持将被点击的元素作为参数传递。
编辑:Acullty 我不会更改源代码,下次您必须升级 Prettyphoto 时,您必须再次进行更改。这将是维护的好消息。
一个解决方案可能是跟踪点击的链接并保存它:
$(document).ready(function(){
var lastClicked = null;
$("a[rel^='prettyPhoto']").prettyPhoto({
callback: function()
{
if(lastClicked != null) {
var topicid = lastClicked.data("topicid"); // lastClicked is your lastclicked link. So you can use whatever jQuery method on it..
alert("topic: " + topicid); // The topic_id
$.post('/course/close-video', {topic_id: '13'});
lastClicked = null; // Set the last clicked to null
}
}
}).click(function (){
lastClicked = $(this);
});
});
我为您创建了一个 jsfiddle,以便您可以测试: http://jsfiddle.net/26L8w/
这不会处理内置的“移至下一个”功能,因为它不会跟踪它。但如果您想跟踪它,您可以启用 jQuery。
关于javascript - Prettyphoto - 如何将唯一参数传递给回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721854/
我是一名优秀的程序员,十分优秀!