jQuery没有定位选择器

时间:2017-05-16 19:46:02

标签: javascript jquery variables object

使用javascript / jquery,为什么会这样:

/
  html5-webcam-save.php
  selfie_html5.html
  /images (folder)

但不是这样:

var vid = document.getElementById("bgvid");

function stopVideo() {
vid.pause();
}

setTimeout(stopVideo, 2000);

相反,当我稍后尝试淡化相同的视频时,这有效:

var vid = $('#bgvid');

function stopVideo() {
vid.pause();
}

setTimeout(stopVideo, 2000);

但这并不是:

$('#bgvid').parent().delay(13000).fadeOut(2000);

我认为var" vid"通过id获取视频元素将等同于$(' #bgvid')...

而且更重要的是,我有一个元素在一段时间后出现并淡出:

vid.parent().delay(13000).fadeOut(2000);

如果用户点击,我也想让它淡出,所以我试过这个:

var element = $( '#element' );

element.hide().delay(6000).fadeIn(500).delay(6000).fadeOut(500);

但是当我点击没有任何反应时,元素不会淡出。控制台上没有错误。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

根据上面的答案,javascript选择器不等于JQuery对象。有关详细信息,请查看以前的答案:document.getElementById vs jQuery $()

要获取与javascript选择器相同的DOM对象,必须选择JQuery对象数组中的第一个对象:vid.get(0)

关于fadeOut问题,在其他事件结束之前,您无法在同一ID上激活onClick功能。

为了解决这个问题,我建议将你的元素放在一个新的div中,在这个div上运行show / hide计时器,并在元素上运行onClick fadeout。

var element = $( '#element' );

element.hide().parent().delay(6000).fadeIn(500).delay(6000).fadeOut(500);

$( document ).on('click', function(){
    element.fadeOut(500);
});
祝你好运。