将click函数绑定到具有原型的锚点标记内的所有元素
Binding click function to all elements within an anchor tag with prototype
我有这样的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>
</li>
...
</ol>
以及以下JavaScript(原型):
$$('#test-ol a').each(function(narrowByElement){
Event.observe($(narrowByElement),'click',onToolbarClick.bind(this));
});
onToolbarClick = function(event){
var href = Event.element(event).readAttribute('href');
console.log(href);
Event.stop(event);
}
单击锚点标记中的非span部分将记录正确的href,但单击span中的"test"部分将返回null。
那么,我如何将我的点击函数绑定到锚标记中的所有元素呢?
试试这个:
Event.on('test-ol', 'click', 'a', onToolbarClick);
onToolbarClick = function(event, element){
var href = element.readAttribute('href');
console.log(href);
event.stop();
}
有关更多详细信息,请查看Event.on的文档,特别是selector
和callback
参数的说明。
onToolbarClick = function(event){
var href = this.getAttribute('href');
console.log(href);
Event.stop(event);
}
原型1.6.0及更高版本。
相关文章:
- 原型js 如何使定期更新程序隐藏基于ajax响应的类元素
- 挂钩文档.使用函数原型创建元素
- 手动呈现原型JS元素对象
- 原型JavaScript Event.observe-如何观察可能存在或不存在的元素
- jQuery-类的仅原型元素
- 在不丢失原型的情况下返回函数上的元素
- 原型JS不删除选择元素
- 元素原型作为字符串
- JavaScript 原型 - 覆盖某些元素的 .scrollTo
- 将原型继承到 JavaScript 中的所有子元素
- 调用原型函数的元素是什么
- JavaScript 原型将方法附加到 DOM 元素
- 创建元素并使用继承的原型函数在加载时调用,而不是在单击时调用
- 原型:观察2个元素并传递不同的参数
- 如何迭代html元素原型的属性名称
- 多个元素原型不起作用
- 检查自定义元素原型是否源自特定原型
- 向DOM元素添加新属性与扩展DOM元素原型
- Javascript:获取父元素's原型' this '
- DOM元素原型