2014-02-08 51 views
-1

我用下面的代碼來調用文檔的單擊事件:點擊事件沒有解僱首先點擊DIV

$(document).bind("click", $.proxy(proxy._cellClickHandler, proxy)); 

_cellClickHandler: function (e) { 
      var $target = $(e.target), 
       row = $target.closest('tr'), 
       proxy = this, 
       args = {}, 
       currentData, 
       index; 
} 

點擊它的第一次不火的事件。在第二次點擊它調用正確。如何解決這個問題?

+0

哪裏是代理OBJ? –

+0

將其包裝在$(document).ready()中 – dotNETbeginner

+0

25有問題並且不被接受答案!你真的應該[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)一些答案。 – Teemu

回答

0

嘗試使用.live點擊,如果你使用的不是 '上' 更新的jQuery 1.9

$(document).live("click", $.proxy(proxy._cellClickHandler, proxy)); 
+0

然後爲什麼第二次點擊工作。 –

+1

可能是元素動態加載。 DOM無法以某種方式註冊它,因此可能找不到元素。 – Makrand

+0

我不是提問者。只是問,如果我們假設註冊事件時元素不存在,那麼爲什麼它在第二次點擊工作。兩種可能性,要麼它應該正常工作,要麼不應該完全工作。我認爲OP的代碼可能存在一些其他問題。 –

2

使用(http://api.jquery.com/on/):

var proxy= { 
    _cellClickHandler: function (e) { 
      var $target = $(e.target), 
       row = $target.closest('tr'), 
       proxy = this, 
       args = {}, 
       currentData, 
       index; 
    } 
} 

$(document).on("click", $.proxy(proxy._cellClickHandler, proxy)); 
相關問題