2012-03-15 133 views
2

在prettyphoto反正有我的参数传递给回调函数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,但这应该基于点击哪个链接而产生。

有多个页面的A HREF标签,每一个都有一个唯一的topic_id

那么,如何通过独特topic_id回调函数

感谢很多

+0

你可不要使用** this **并获取任何值,如果它取决于链接? – 2012-03-15 14:33:24

+0

嗨西蒙,不太清楚你的意思 - 但是当我添加一个id属性的锚标记,并尝试访问它的回调像警报($(this).attr('id'));我得到undefined – Gublooo 2012-03-15 14:40:09

回答

4

我有检查了源代码并且它不受Prettyphoto支持。但是,您可以修改prettyphoto的来源。

在版本1.3.4(未压缩)中,您必须更改回调函数,以便支持将clicked元素作为参数传入。

编辑: 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。

+0

谢谢Simon,我会如何去做。 – Gublooo 2012-03-15 15:53:23

+0

我更新了我的回答 – 2012-03-15 16:40:44

+1

哇,这是一个非常整洁的解决方案,像魅力一样工作。非常感谢您的时间。欣赏它 – Gublooo 2012-03-15 17:50:36