页面导航的if条件出现问题
issue in if condition for page navigation
$( '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页面。它工作得很好,当我点击列表中的第一个文件,即它导航到其他页面,但当我点击列表的第一个元素以外,它不导航到其他页面,而是在当前页面本身播放文件,请解决这个问题。
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留空所以点击时它会进入点击功能根据我点击的文件格式它会进入if条件页面应该会打开
问题很简单。你在使用ID而不是类。id是唯一的,并且不应超过1个元素具有相同的id。这里您多次使用mediaLink
和musicPlay
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>';
然后修改你的点击处理程序,使用类/id代替。没有相关的HTML代码,这就是我所能说的。如果您能提供HTML代码,我可能能够帮助您进一步修改处理程序的代码。
代替if(extension=="mp3" || extension=="wav")
尝试如果(extension.equals (mp3) | | extension.equals (wav))
相关文章:
- 这个条件语句的逻辑有问题
- CycleDOM条件呈现问题
- jQuery Ajax成功提交条件问题
- jQuery条件选择问题
- jqgrid 中的 if-else 条件出现问题
- 如何在纯 javascript 中检查元素是否有 ID?和条件语句问题
- onscroll 函数执行多个条件语句的问题
- 基于页面宽度的 js 条件问题
- Laravel中的vuejs和条件模板渲染问题
- 碰撞检测问题;对某些条件的奇怪反应
- 在条件问题中对JavaScript进行编码
- 这个 JavaScript for loop 有什么问题?是定义条件的第二条语句吗?
- 在设置条件以仅在数组中存在相应对象时才执行函数时遇到问题
- javascript种族条件问题
- 针对循环条件问题
- 条件运算符和IF..ELSE语句的问题
- 使用jQuery根据条件选择/取消选中单选按钮的问题
- Jquery复选框数据属性条件的问题
- 在带有变量/while循环条件的javascript中出现问题
- 查找值位于哪个逻辑集的逻辑条件存在问题