传入变量的 js 函数堆栈,.hide() 不起作用
js function stacks passed in variables, .hide() not working
我有一个功能可以在我点击视频缩略图时播放视频。我正在尝试 show/hide 通过 php 动态生成的视频描述,但它似乎不起作用。
设置:带有 jwplayer7 的 wordpres cms。
这是调用js函数的html
<div class="s_l_whole_item" title="sample.mp4" onclick="playVOD(this.id)" id="sample.mp4"> video image here </div>
所有 javascript 都在外部文件中,这是播放视频的功能,应该显示/隐藏(尚未实现,但即使隐藏也不起作用) divs已为每个视频动态创建
function playVOD(filename) {
jwplayer('MediaPlayerOverview_LS_dvr')
.setup(
{
sources : [
{
file : "rtmp://xx.xxx.xxx.xxx:1935/vod/mp4:"+ filename
},
{
file : "http://xx.xxx.xxx.xxx:1935/vod/mp4:"
+ filename + "/playlist.m3u8"
} ],
rtmp : {
bufferlength : 3,
},
logo : {
file : 'http://www.somepicture.nu/a.jpg',
link : 'http://www.link.nu/'
},
abouttext : "right click text",
aboutlink : "http://www.right click link.com",
autostart : true,
title : 'title',
width : '100%',
height : "100%",
aspectratio : '16:9',
skin : 'glow',
fallback : true,
androidhls : true,
})
jQuery(document).ready(function() {
jQuery('.s_l_whole_item').live('click', function(event) {
//jQuery(this).closest('.hiden_karuselis').find('#ka_'+filename).toggle();
jQuery(this).closest('.hiden_karuselis').find('#ka_'+filename).hide();
console.log("I have been clicked!");
console.log('#ka_'+filename);
});
});
}
视频播放适用于每次不同的点击,它会播放我点击的视频,但由于某种原因它不会 show/hide div。
这是 div 我正在尝试 hide/show 取决于点击的视频。出于演示目的,假设它只是 "sample.mp4"
<div class="hiden_karuselis">
<div class="ka_file" id="ka_sample.mp4">
<div class="ka_file_name">sample</div>
<div class="ka_file_description">description of file</div>
<div class="ka_file_date">2016-04-19 10:19:33</div>
</div>
</div>
尝试不成功后,我注意到 chrome 控制台输出变量,就好像该函数将自己附加到它之前的所有调用一样。
这是我在 3 个不同视频上单击 3 次时在控制台中看到的内容。
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_myStream.mp4
VM9740:13 Unhandled event from "MediaPlayerOverview_LS_dvr_swf_0": state %7B%22newstate%22%3A%22idle%22%2C%22oldstate%22%3A%22playing%22%2C%22type%22%3A%22state%22%7D
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_myStream.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_rtgwait.mp4
VM9823:13 Unhandled event from "MediaPlayerOverview_LS_dvr_swf_1": state %7B%22newstate%22%3A%22idle%22%2C%22oldstate%22%3A%22playing%22%2C%22type%22%3A%22state%22%7D
在上面的日志中,我点击了 "sample.mp4",然后点击了 "mystream.mp4",最后点击了 "rtgwait.mp4"
为什么 .hide() 不起作用,为什么日志中有堆叠变量?每次我点击按钮/呼叫功能时,它们不应该被清除吗?
我认为这也是 jwplayer7 错误原因以及 .hide() 不工作的原因。
我该如何解决这个问题?
console.log(filename);
正在向控制台写入 #ka_sample.mp4
,这表明变量“filename
”已正确设置。
然后您将使用文件名变量 ('#ka_'+filename)
,它将查找 ID 为 #ka_#ka_sample.mp4
的不存在的元素。
我会删除 '#ka_'
位,因此您应该:
jQuery(this).closest('.hiden_karuselis').find(filename).hide()
我找到问题了,就是多出来的“.”在我的 class name/ID 中,因为我的 ID 是 "filename.mp4"。为了解决这个问题,我必须更改我的 ID 的生成方式并省略“.mp4”部分。
而且我还找到了一个只显示点击信息的解决方案。
jQuery(document).ready(function() {
jQuery('.s_l_whole_item').live('click', function(event) {
jQuery('#hiden_karuselis > div').show()
jQuery('#hiden_karuselis > div').not('#'+filename).hide()
});
});
现在我有另一个问题。因为我有像
这样的文件名
myStream-2015-08-10-08.51.50.076-CEST-0.mp4
由 wowza 媒体服务器生成。有没有办法通过“。”作为 class/id 名称的一部分而不混淆 css 选择器?
我有一个功能可以在我点击视频缩略图时播放视频。我正在尝试 show/hide 通过 php 动态生成的视频描述,但它似乎不起作用。
设置:带有 jwplayer7 的 wordpres cms。
这是调用js函数的html
<div class="s_l_whole_item" title="sample.mp4" onclick="playVOD(this.id)" id="sample.mp4"> video image here </div>
所有 javascript 都在外部文件中,这是播放视频的功能,应该显示/隐藏(尚未实现,但即使隐藏也不起作用) divs已为每个视频动态创建
function playVOD(filename) {
jwplayer('MediaPlayerOverview_LS_dvr')
.setup(
{
sources : [
{
file : "rtmp://xx.xxx.xxx.xxx:1935/vod/mp4:"+ filename
},
{
file : "http://xx.xxx.xxx.xxx:1935/vod/mp4:"
+ filename + "/playlist.m3u8"
} ],
rtmp : {
bufferlength : 3,
},
logo : {
file : 'http://www.somepicture.nu/a.jpg',
link : 'http://www.link.nu/'
},
abouttext : "right click text",
aboutlink : "http://www.right click link.com",
autostart : true,
title : 'title',
width : '100%',
height : "100%",
aspectratio : '16:9',
skin : 'glow',
fallback : true,
androidhls : true,
})
jQuery(document).ready(function() {
jQuery('.s_l_whole_item').live('click', function(event) {
//jQuery(this).closest('.hiden_karuselis').find('#ka_'+filename).toggle();
jQuery(this).closest('.hiden_karuselis').find('#ka_'+filename).hide();
console.log("I have been clicked!");
console.log('#ka_'+filename);
});
});
}
视频播放适用于每次不同的点击,它会播放我点击的视频,但由于某种原因它不会 show/hide div。
这是 div 我正在尝试 hide/show 取决于点击的视频。出于演示目的,假设它只是 "sample.mp4"
<div class="hiden_karuselis">
<div class="ka_file" id="ka_sample.mp4">
<div class="ka_file_name">sample</div>
<div class="ka_file_description">description of file</div>
<div class="ka_file_date">2016-04-19 10:19:33</div>
</div>
</div>
尝试不成功后,我注意到 chrome 控制台输出变量,就好像该函数将自己附加到它之前的所有调用一样。 这是我在 3 个不同视频上单击 3 次时在控制台中看到的内容。
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_myStream.mp4
VM9740:13 Unhandled event from "MediaPlayerOverview_LS_dvr_swf_0": state %7B%22newstate%22%3A%22idle%22%2C%22oldstate%22%3A%22playing%22%2C%22type%22%3A%22state%22%7D
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_sample.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_myStream.mp4
vod_player.js?ver=4.4.3:77 I have been clicked!
vod_player.js?ver=4.4.3:78 #ka_rtgwait.mp4
VM9823:13 Unhandled event from "MediaPlayerOverview_LS_dvr_swf_1": state %7B%22newstate%22%3A%22idle%22%2C%22oldstate%22%3A%22playing%22%2C%22type%22%3A%22state%22%7D
在上面的日志中,我点击了 "sample.mp4",然后点击了 "mystream.mp4",最后点击了 "rtgwait.mp4"
为什么 .hide() 不起作用,为什么日志中有堆叠变量?每次我点击按钮/呼叫功能时,它们不应该被清除吗? 我认为这也是 jwplayer7 错误原因以及 .hide() 不工作的原因。
我该如何解决这个问题?
console.log(filename);
正在向控制台写入 #ka_sample.mp4
,这表明变量“filename
”已正确设置。
然后您将使用文件名变量 ('#ka_'+filename)
,它将查找 ID 为 #ka_#ka_sample.mp4
的不存在的元素。
我会删除 '#ka_'
位,因此您应该:
jQuery(this).closest('.hiden_karuselis').find(filename).hide()
我找到问题了,就是多出来的“.”在我的 class name/ID 中,因为我的 ID 是 "filename.mp4"。为了解决这个问题,我必须更改我的 ID 的生成方式并省略“.mp4”部分。
而且我还找到了一个只显示点击信息的解决方案。
jQuery(document).ready(function() {
jQuery('.s_l_whole_item').live('click', function(event) {
jQuery('#hiden_karuselis > div').show()
jQuery('#hiden_karuselis > div').not('#'+filename).hide()
});
});
现在我有另一个问题。因为我有像
这样的文件名 myStream-2015-08-10-08.51.50.076-CEST-0.mp4
由 wowza 媒体服务器生成。有没有办法通过“。”作为 class/id 名称的一部分而不混淆 css 选择器?