2017-05-16 7 views
-1

対象ではない、なぜこの作業である私は、後に同じ映像をフェードインしようとすると、逆にjQueryのジャバスクリプト/ jqueryのを使用してセレクタ

var vid = $('#bgvid'); 

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

setTimeout(stopVideo, 2000); 

、この作品:

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

が、これはそうではない:

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

私はそのidでvideo要素を取得しているVAR「VID」は

そしてまた、より重要なのは、私が表示される要素を持っている... $(「#のbgvid」)に相当するだろうと思いました

var element = $('#element'); 

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

と私はまた、ユーザーはので、私はこの試みたがクリックした場合、それがフェードアウトしたいと思います::と設定した時間後にフェードアウト

$(document).on('click', function(){ 
    element.fadeOut(500); 
}); 

を私は何もクリックしない場合に発生し、要素フェードアウトしない。コンソールにエラーはありません。あなたの時間をありがとう。

+5

'vid'はjQueryオブジェクトです。 'vid.get(0)'が必要です。 –

+0

[おそらく関連](http://stackoverflow.com/questions/4069982/document-getelementbyid-vs-jquery) – Hodrobond

+0

ありがとう、最後の質問はどうですか?なぜ要素がクリックで消えないのですか? – Paul

答えて

0

上記の回答によれば、javascriptセレクタはJQueryオブジェクトと等しくありません。この前の回答で詳細を見て、よりについて:document.getElementById vs jQuery $()

JavaScriptのセレクタとして同じDOMオブジェクトを取得するには、jQueryオブジェクトの配列内の最初のオブジェクトを選択する必要があります。vid.get(0)

fadeOutに関する質問では、他のイベントが終了する前に同じIDでonClick関数をアクティブにすることはできません。

これを回避するには、要素を新しいdivに配置し、このdivのshow/hideタイマーと要素のonClickフェードアウトを実行することをお勧めします。

var element = $('#element'); 

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

$(document).on('click', function(){ 
    element.fadeOut(500); 
}); 

幸運。

関連する問題