簡體   English   中英

jplayer綁定似乎不起作用

[英]jplayer binding doesn't seem to work

我繼承了使用jPlayer的網絡播放器。 它適合播放音頻文件,但是當用戶播放音軌時,我試圖設置一些隱藏字段,而jPlayer中似乎無法綁定到任何事件。 我已經使用類似的代碼將其綁定到h1標簽上的click事件,並且可以正常工作,但jplayer不能。 也沒有錯誤。 我從jPlayer的文檔中獲得了綁定示例。 這是我要執行的操作的摘要:

 $(document).ready(function () {

    //listener for playing the file
    $("#jquery_jplayer_1").bind($.jPlayer.event.play, function (event) {

        alert('play');
    });
 });

這是我的html:

 <div id="jquery_jplayer_1" class="jp-jplayer"></div>

    <div id="jp_container_1" class="jp-audio" >
        <div class="jp-type-single">
            <div id="htmlPlayer" style="display: none">
                <audio id="audioPlayer" controls style="width:100%;">
                    <source id="mp3Source" type="audio/mp3" />
                </audio>
            </div>
            <div class="htmlHidePoint" style="display: none">
                <div class="jp-gui jp-interface">
                    <ul class="jp-controls">
                        <li><a href="javascript:;" onclick="javascript:alert('test');" class="jp-play" tabindex="1">play</a></li>
                        <li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
                        <li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
                        <li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
                        <li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
                        <li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
                    </ul>
                    <div class="jp-progress">
                        <div class="jp-seek-bar">
                            <div class="jp-play-bar"></div>
                        </div>
                    </div>
                    <div class="jp-volume-bar">
                        <div class="jp-volume-bar-value"></div>
                    </div>
                    <div class="jp-time-holder">
                        <div class="jp-current-time"></div>
                        <div class="jp-duration"></div>

                        <ul class="jp-toggles">
                            <li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
                            <li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="jp-title">
                <ul>
                    <li><span id="songname">No Song Selected</span></li>
                </ul>
                <div class="under">
                    <ul>
                        <li><a href="#" onclick="ViewTranscript();return false;" onkeypress="ViewTranscript();return false;" tabindex="2">Transcript</a></li>
                        <li><a href="#" onclick="ViewDowloadOptions();return false;" onkeypress="ViewDowloadOptions();return false;" tabindex="2">Download</a></li>
                    </ul>
                </div>
            </div>
            <div class="htmlHidePoint" style="display: none">
                <div class="jp-no-solution">
                    <span>Update Required</span>
                    To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
                </div>
            </div>
        </div>
    </div>&nbsp;



實際的源文件是通過jPlayer方法中的error選項加載的:

               error: function (event) {
                if (event.jPlayer.error.type == 'e_url_not_set') {
                    $(this).jPlayer("setMedia", {
                        mp3: '<%=ResolveUrl("~/Handlers/Podcasts.ashx") %>?command=ZipPodcast&PodcastID=' + selectedPodcast.ItemID + '&options=audio'
                    });

                    $(this).jPlayer("play");
                }
            },

顯示jPlayer的html。 確保ID是正確的。

嘗試改為在選項上指定它:

$("#jquery_jplayer_1").jPlayer({
  play: function() {
    alert('hi');
  }
});

您是在使用選項初始化jPlayer之前還是之后綁定?

綁定時頁面上是否存在jPlayer?

代碼沒有錯,創建事件的方式是正確的,通常會彈出alert('play')

嘗試將您的語句放在jPlayer實例化下。 如果不起作用,可能是由於某些原因,實例化未成功。 也許用來獲取dom的選擇器是錯誤的,等等。

$("#jquery_jplayer_1").jPlayer()
$("#jquery_jplayer_1").bind($.jPlayer.event.play, function (event) {
    alert('hi');
}); 

還要嘗試將事件作為jPlayer()方法的一個選項,如Martin Mazza Dawson的回答所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM