2014-09-22 53 views
0

我在处理onclick事件时遇到了麻烦。 我的HTML:内联onclick函数(这个)不调用jQuery方法

<div> 
    <button onclick="sound(this)">Listen</button> 
    <audio class="audio" src="example.mp3"></audio> 
</div> 

我的JS(jQuery的):

function sound(element){ 
    $audio = element.siblings('.audio').first(); 
    $audio.trigger('play'); 
} 

的事情是不是播放的音频文件。 我也做了一些测试。

function sound(element){ 
    alert(element.tagName); -> it worked 
    alert(element.parent().tagName); -> not worked and so on with siblings() or next() 

东西一定是错的。请帮助我。非常感谢。

+2

'element'(了'this'您传递)是土生土长的DOM元素,而不是一个jQuery的包装! – Bergi 2014-09-22 11:34:39

回答

1

而不是

function sound(element){ 
    $audio = element.siblings('.audio').first(); 
    $audio.trigger('play'); 
} 

试试这个

function sound(element){ 
    $audio = $(element).siblings('.audio').first(); //here 'element' is just a DOM element you have to wrap 'element' in jquery wrapper. 
    $audio.trigger('play'); 
} 
+0

这将是很好的提及'onclick =“”'是过时的方式来添加事件处理程序。 – Regent 2014-09-22 11:37:22

+0

非常感谢,它的工作。 – 2014-09-22 11:49:43

+0

@ Taiguguen ..你的欢迎.. !!! – 2014-09-22 11:50:02