我在 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()
方法后,event
ore
变量会自动作为第一个参数传递给函数。
您是否“传递”了合约功能?
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();
}