2013-08-07 77 views
-1

我有以下觸發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

回答

3

可以做到這一點:

$(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

2

你是否在合同函數上傳遞了e?

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

即使沒有從click事件傳遞它,e var應該在接收端可用。

0

這是一個內聯函數會是什麼樣子。我也使用stopPropagation

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