2013-04-18 97 views
0
$('li').on('click', function(event) { 
      console.log("inside music player"); 
      var projIndex = $(this).index(); 
      selectedMedia=$(this).text(); 
      console.log("------"+projIndex); 
      console.log("------"+selectedMedia); 
      var extension = selectedMedia.substr((selectedMedia.lastIndexOf('.') +1)); 
      console.log("extension-----"+extension); 
      if(extension=="mp3" || extension=="wav") 
       { 
       var musicLink="#musicPlay_page"; 
       var selectedLink = document.getElementById('mediaLink'); 
       selectedLink.href=musicLink; 
       $('#musicPlay_page').add(playMusicList(selectedMedia)); 
       }       
      else if(extension=="mp4") 
       { 
       var videoLink="#videoPlay_page"; 
       var selectedLink = document.getElementById('mediaLink'); 
       selectedLink.href=videoLink; 
       $('#videoPlay_page').add(playVideoList(selectedMedia)); 
      } 

     }); 

在上面的代码中,我需要根据我选择的媒体类型(mp3或mp4)导航到两个不同的页面。如果它的MP3然后它导航到musicPlay页面,如果它的MP4它应该导航到videoPlay page.it效果很好,当我点击列表中的第一个文件,即它导航到其他页面,但是当我点击列表的第一个元素以外它不会导航到其他页面,而是它会在当前页面中播放该文件,请解决此问题。问题,如果条件页面导航

function onsuccess(files) { 
     $('#media_list').remove(); 

     var d='<div id="media_list">'; 
     d += '<ul data-role="listview" style="list-style: none outside none;padding: 0;">' 
      +'<div style="font-weight:bold;color:black;">'; 
     for(var i = 0; i < files.length; i++) { 
      console.log("File Name is " + files[i].name); // displays file name 

      if(files[i].isDirectory == false){  
       d+='<li style="vertical-align: top;">' 
        +'<a href="" id="mediaLink">' 
        +'<img src="/images/musicPlay_logo.jpg" id="musicPlay"/>' 
        +files[i].name 
        +'</a><hr color="black" size =1 width=500></li>'; 

      } 
     } 
     d+= '</div>'; 
     d+= '</ul>'; 
     d+= '</div>'; 
     $("#media_content").append(d); 

}

这个我曾经显示器,它显示的媒体文件列表中的HTML内容的功能,你可以在“A”的标签我离开的href空白看到,这样就点击它去点击功能和取决于我点击了文件的格式它去,如果条件和页面应该打开

+0

提供您正在处理的html。 – 2013-04-18 07:08:25

+0

当你点击第一个元素以外的其他元素时,console.log(“extension -----”+ extension)的输出是什么 ? – 2013-04-18 08:42:32

+0

它给出正确的扩展名,它也播放歌曲,但不去音乐播放页面 – 2013-04-18 08:44:17

回答

-3

,而不是如果(扩展==“MP3” ||扩展==“WAV”)

试试if(extension.equals(“mp3”)|| extension.equals(“wav”))

+0

'extention'是一个字符串,[JavaScript strings](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String)没有'equals'方法。 – 2013-04-18 07:33:12

+0

是的,因为控制进入里面如果条件,它只是新的页面没有得到加载的点击列表元素以外的第一个元素 – 2013-04-18 08:17:53

0

问题很简单。你使用的是ID而不是类。 ID是唯一的,不超过1个元素应该具有相同的ID。在这里,您多次使用mediaLinkmusicPlay ID,并且JavaScript仅查找第一个匹配项,因为根据定义,应该不会有更多。 更改ID,以类,其是可重复使用的标识符,像这样:

d+='<li style="vertical-align: top;">' 
    +'<a href="" class="mediaLink">' 
    +'<img src="/images/musicPlay_logo.jpg" class="musicPlay"/>' 
    +files[i].name 
    +'</a><hr color="black" size =1 width=500></li>'; 

或添加一些独特的ID,因此不重复,如循环计数器(i),如下图所示:

d+='<li style="vertical-align: top;">' 
    +'<a href="" id="mediaLink-'+i+'">' 
    +'<img src="/images/musicPlay_logo.jpg" id="musicPlay-'+i+'"/>' 
    +files[i].name 
    +'</a><hr color="black" size =1 width=500></li>'; 

然后改变你的点击处理程序来代替使用class/id。没有相关的HTML代码,这就是我所能说的。如果您可以提供HTML代码,我可能会帮助您进一步更改处理程序的代码。