如何将事件传递给。('click')上的命名函数?
问题描述:
我有以下触发jQuery中:如何将事件传递给。('click')上的命名函数?
$('.text').on('click', '.readless', contract);
在合同,我想用event.preventDefault()
但这并不工作在Firefox,所以我需要通过收缩事件。我该怎么做呢?
答
可以做到这一点:
$(function() {
// Attach Event
// new way (jQuery 1.7+) - on(events, selector, handler);
$('.text').on('click', '.readless', contract);
function contract(e) {
e.preventDefault();
alert(e.type);
}
// Create elements dynamically
$('.text').append('<div class="readless">click me</div>');
});
添加功能contract
的参考on()
方法后,event
或e
变量被自动传递给函数作为第一个参数。
答
你是否在合同函数上传递了e?
contract(e){
e.preventDefault();
}
即使没有从click事件传递它,e var应该在接收端可用。
答
这是一个内联函数会是什么样子。我也使用stopPropagation
。
$('.text').on('click', '.readless', function(event){
event.preventDefault();
event.stopPropagation();
});
只要接受'event'作为第一个参数? 'function contract(event){...}' –
请参阅jQuery'preventDefault()'文档中的示例:http://api.jquery.com/event.preventDefault/#example-0 –
另一个示例http:///jsfiddle.net/DVPrk/ – BeNdErR