Javascript 使用prototype将click函数绑定到锚定标记中的所有元素
我有如下html:Javascript 使用prototype将click函数绑定到锚定标记中的所有元素,javascript,prototypejs,Javascript,Prototypejs,我有如下html: <ol id="test-ol"> <li> <a href="http://example.com"> <span class="myspan">test</span> not in span <span class="myspan">test2</span> </a>
<ol id="test-ol">
<li>
<a href="http://example.com">
<span class="myspan">test</span>
not in span
<span class="myspan">test2</span>
</a>
</li>
...
</ol>
单击锚标记中的非span部分将记录右href,但单击span中的“测试”部分将返回null
那么,如何将单击功能绑定到锚标记中的所有元素呢
onToolbarClick = function(event){
var href = this.getAttribute('href');
console.log(href);
Event.stop(event);
}
对于prototype 1.6.0及更高版本。请尝试以下操作:
Event.on('test-ol', 'click', 'a', onToolbarClick);
有关更多详细信息,请查看文档,特别是
选择器
和回调
参数的说明。this.getAttribute不是函数-Prototype 1.7Ok,您使用哪个版本的原型?我建议不需要bind
,因为onToolbarClick
不使用它的上下文,并且没有迹象表明在绑定时使用了此
。在OP的代码中,使用this
可能会与jQuery的$混淆。为每个元素设置上下文的每个,这里都是未定义的或窗口@clockworkgeek您可能是对的。我已经更新了我的答案,删除了bind
注释,使我的答案更简单。但它可能应该是Event.on($('test-ol'),'click','a',onToolbarClick)
@MOmann是的,你是对的-元素或id字符串,不一定是选择器。我已经编辑了我的答案。很乐意帮忙。
Event.on('test-ol', 'click', 'a', onToolbarClick);
onToolbarClick = function(event, element){
var href = element.readAttribute('href');
console.log(href);
event.stop();
}