Browse Source

fix lazy load selector error

Hakim El Hattab 10 years ago
parent
commit
207b0c71ed
3 changed files with 11 additions and 1 deletions
  1. 1 1
      js/reveal.js
  2. 2 0
      test/test.html
  3. 8 0
      test/test.js

+ 1 - 1
js/reveal.js

@@ -2723,7 +2723,7 @@
 		slide.style.display = 'block';
 
 		// Media elements with data-src attributes
-		toArray( slide.querySelectorAll( 'img[data-src]', 'video[data-src]', 'audio[data-src]' ) ).forEach( function( element ) {
+		toArray( slide.querySelectorAll( 'img[data-src], video[data-src], audio[data-src]' ) ).forEach( function( element ) {
 			element.setAttribute( 'src', element.getAttribute( 'data-src' ) );
 			element.removeAttribute( 'data-src' );
 		} );

+ 2 - 0
test/test.html

@@ -22,6 +22,8 @@
 				<section data-background-image="examples/assets/image1.png">
 					<h1>1</h1>
 					<img data-src="fake-url.png">
+					<video data-src="fake-url.mp4"></video>
+					<audio data-src="fake-url.mp3"></audio>
 				</section>
 
 				<section>

+ 8 - 0
test/test.js

@@ -495,6 +495,14 @@ Reveal.addEventListener( 'ready', function() {
 		strictEqual( document.querySelectorAll( '.reveal section img[src]' ).length, 1, 'Image source has been set' );
 	});
 
+	test( 'video with data-src', function() {
+		strictEqual( document.querySelectorAll( '.reveal section video[src]' ).length, 1, 'Video source has been set' );
+	});
+
+	test( 'audio with data-src', function() {
+		strictEqual( document.querySelectorAll( '.reveal section audio[src]' ).length, 1, 'Audio source has been set' );
+	});
+
 	test( 'iframe with data-src', function() {
 		Reveal.slide( 0, 0 );
 		strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 0, 'Iframe source is not set' );