2012-03-25 72 views

回答

3

嗯,這是正確的,你鏈接到頁面頂部:

這個腳本公開SC.Widget(/ iframeElement | iframeElementID /) 功能全局範圍。它允許您從父頁面(小部件插入的頁面)控制 的小部件。 SC.Widget 接受對iframe元素或其id的引用。

這意味着(如也從文檔的引用):

var iframeElement = document.querySelector('iframe'); 
var iframeElementID = iframeElement.id; 
var widget1   = SC.Widget(iframeElement); 
var widget2   = SC.Widget(iframeElementID); //both widgets seem to be the same it's just two ways of accessing them 

然後你propably只需要做:

widget1.prev(); 

編輯

既然你使用自定義播放器(沒有documented interface),而不是你可以使用我無恥地從這裏複製的方法的HTML5控件:https://gist.github.com/1509934

使用這樣的功能:

function getNextTrack(node) { 
    var $player = $(node).closest('.sc-player'), 
     $nextItem = $('.sc-trackslist li.active', $player).next('li'); 
    // try to find the next track in other player 
    if(!$nextItem.length){ 
    $nextItem = $player.nextAll('div.sc-player:first').find('.sc-trackslist li:first'); 
    } 
    return $nextItem; 
}; 

要獲得它是與當前「nextTrack」的項目,然後用jQuery的或別的東西觸發該鏈接的點擊:

var currentNext = getNextTrack($('.sc-player').first()[0]); 
$(currentNext).trigger('click'); 

曾在我的控制檯罰款....

編輯2

只是爲了澄清,這工作!我所做的只是添加一個與類'sc-next'的鏈接並且寫下了這個:

$('.sc-next').live('click', function(event) { 
    var currentNext = getNextTrack($('.sc-player').first()[0]); 
    $(currentNext).trigger('click'); 
}); 
+0

雖然我沒有使用html5小部件,但我正在使用自定義播放器。我只引用了小部件API,因爲我注意到它有next()和prev(),不確定它是否有用。看看我發佈的第一個鏈接的來源。 – ndimatteo 2012-03-25 15:21:44

+0

@NickD好吧,我很困惑,因爲你的第二個鏈接指向HTML小部件文檔...文檔沒有聲明任何東西,但我想你總是可以做這樣的事情:https://gist.github.com/1509934並觸發點擊下一個鏈接。 – m90 2012-03-25 15:35:11

+0

@NickD查看我的編輯 – m90 2012-03-25 15:41:26

1

感謝這個傢伙!我最終做的是:

$('a.sc-next').live('click', function(event) { 
    var $player = $(this).closest('.sc-player'), 
    $nextItem = $('.sc-trackslist li.active', $player).next('li'); 
    $nextItem.click(); 
    return false; 
}); 

$('a.sc-prev').live('click', function(event) { 
    var $player = $(this).closest('.sc-player'), 
    $nextItem = $('.sc-trackslist li.active', $player).prev('li'); 
    $nextItem.click(); 
    return false; 
}); 
相關問題