我在 jquery 中有以下触发器:
$('.text').on('click', '.readless', contract);
在合同中,我想使用event.preventDefault(),但这在 Firefox 中不起作用,所以我需要将事件传递给合同。我该怎么做呢?
我在 jquery 中有以下触发器:
$('.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()方法后,eventore变量会自动作为第一个参数传递给函数。
您是否“传递”了合约功能?
contract(e){
e.preventDefault();
}
即使没有从点击事件传递它,e var 也应该在接收端可用。
这就是内联函数的样子。我也会用stopPropagation.
$('.text').on('click', '.readless', function(event){
event.preventDefault();
event.stopPropagation();
});
实际上,您似乎不需要传递参数,但您只需要设置它以便函数接收它。在api.query.com 文档中快速了解bind()...
$( "#foo" ).bind( "click", function( event ) {
因此,您需要做的就是$("#foo").bind("click", functionName)将函数定义为function(event) {...}. 在你的具体情况...
function contract(e) {
return e.preventDefault();
}