如何将事件传递给。('click')上的命名函数?

问题描述:

我有以下触发jQuery中:如何将事件传递给。('click')上的命名函数?

$('.text').on('click', '.readless', contract); 

在合同,我想用event.preventDefault()但这并不工作在Firefox,所以我需要通过收缩事件。我该怎么做呢?

+1

只要接受'event'作为第一个参数? 'function contract(event){...}' –

+0

请参阅jQuery'preventDefault()'文档中的示例:http://api.jquery.com/event.preventDefault/#example-0 –

+0

另一个示例http:///jsfiddle.net/DVPrk/ – BeNdErR

可以做到这一点:

$(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()方法后,evente变量被自动传递给函数作为第一个参数。

FIDDLE

你是否在合同函数上传递了e?

contract(e){ 
    e.preventDefault(); 
} 

即使没有从click事件传递它,e var应该在接收端可用。

这是一个内联函数会是什么样子。我也使用stopPropagation

$('.text').on('click', '.readless', function(event){ 
    event.preventDefault(); 
    event.stopPropagation(); 
});