jQuery 中 .trigger('play') 和 .play() 的区别
Posted
技术标签:
【中文标题】jQuery 中 .trigger(\'play\') 和 .play() 的区别【英文标题】:Difference between .trigger('play') and .play() in jQueryjQuery 中 .trigger('play') 和 .play() 的区别 【发布时间】:2013-08-20 07:43:00 【问题描述】:我只是想知道 jQuery 函数“.trigger('play')”和“.play()”之间的区别。我希望我的网站在您按下导航按钮时播放声音。它应该是 html5 标记的声音。
当我使用这个 jQuery 代码时它可以工作:
$('nav ul li a').click(function()
$('#soundFX').trigger('play');
);
但不是这个:
$('nav ul li a').click(function()
$('#soundFX').play();
);
感谢您的回答!
【问题讨论】:
参考this SO问题。play
不是 jQuery 的函数,而是常规的 DOM 函数。
【参考方案1】:
Play 不是 jQuery 方法,它是 DOM 元素的函数。因此,您需要在 Dom 元素本身上调用它,如下所示:
document.getElementById('soundFX').play();
当您在 jQuery 对象上调用 trigger 方法时,您将触发该元素上的原生事件,在这种情况下,您将触发 jQuery 选择器选择的元素的原生播放方法。 希望有帮助。 R.
【讨论】:
谢谢!这向我解释了很多。甚至比我要求的还要多! :)【参考方案2】:我刚刚注意到.trigger('play')
会导致play
处理程序被调用两次,但.play()
只会导致一次。
demo
【讨论】:
以上是关于jQuery 中 .trigger('play') 和 .play() 的区别的主要内容,如果未能解决你的问题,请参考以下文章
Dojo 是不是有等效于 jQuery.trigger() 的功能?