2012-02-24 54 views
0

當您使用.on和namespacing添加事件處理程序時,如果重複該操作(再次添加它) - 是覆蓋現有處理程序還是僅添加第二個事件處理程序?關於重新分配事件的jquery

例如:

$('#myDiv').on('click.download', 'p', handler) 

$('#myDiv').on('click.download', 'p', handler) 

就是幹這個壞?是更好的做法:

$('#myDiv').on('click.download', 'p', handler) 
$('#myDiv').off('click.download', 'p') 
$('#myDiv').on('click.download', 'p', handler) 
+1

你問過之前試過嗎? – 2012-02-24 16:35:29

回答

1

如果添加多個on,它將它們追加到執行的事件列表中。第二種形式

$('#myDiv').on('click.download', 'p', handler) 
$('#myDiv').off('click.download', 'p') 
$('#myDiv').on('click.download', 'p', handler) 

是做一些事情(只要兩個處理程序實際上是不同的)的正確方法...其實做

$('#myDiv').on('click.download', 'p', handler) 
$('#myDiv').off('click.download', 'p', handler) 
$('#myDiv').on('click.download', 'p', handler2) 

,甚至更好的情況下添加一些其他的代碼您不希望移除的事件。