我在jquery中有以下触发器:
$('.text').on('click', '.readless', contract);
在合同中,我想使用event.preventDefault()
但这在firefox中不起作用,所以我需要将事件传递给合同。我该怎么做?
答案 0 :(得分:4)
你可以这样做:
$(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
变量将自动作为第一个参数传递给函数。
答案 1 :(得分:2)
你是否'通过'合同函数?
contract(e){
e.preventDefault();
}
即使没有从click事件中传递它,e var也应该在接收端可用。
答案 2 :(得分:0)
这就是内联函数的样子。我还会使用stopPropagation
。
$('.text').on('click', '.readless', function(event){
event.preventDefault();
event.stopPropagation();
});
答案 3 :(得分:0)
实际上,似乎您不需要传递参数,但是您只需要进行设置即可使函数接收。在api.query.com documentation迅速达到bind()
...
$( "#foo" ).bind( "click", function( event ) {
因此,您所需要做的就是$("#foo").bind("click", functionName)
并将函数定义为function(event) {...}
。根据您的具体情况...
function contract(e) {
return e.preventDefault();
}