2013-10-09 86 views
0

我正在使用名爲h5validate的插件。我發現啓動這個插件的唯一方法是通過點擊(模糊)我想驗證的字段,所以我的邏輯是設置一個函數,當我點擊(正好碰到)下一個按鈕時,爲我做這件事;我曾嘗試直接調用驗證函數,但它不起作用。Jquery函數掛起

反正我的問題是:

1.此功能懸掛在瀏覽器〜3秒,爲什麼呢?

$(document).on('click', '.tab', function() { 
$this = $(this); 
    if($this.is('#tab1'))  { $('.tab-content-first .row .cell input:not(#ImageLocation)').blur(); } 
    if($this.is('#tab2'))  { $('.tab-content-1 .row .cell input:not(#ImageLocation)').blur(); } 
    if($this.is('#tab3'))  { $('.tab-content-2 .row .cell input:not(#ImageLocation)').blur(); } 
    if($this.is('#tab4'))  { $('.tab-content-3 .row .cell input:not(#ImageLocation)').blur(); } 
    if($this.is('#tab5'))  { $('.tab-content-4 .row .cell input:not(#ImageLocation)').blur(); } 
    if($this.is('#tab6'))  { $('.tab-content-5 .row .cell input:not(#ImageLocation)').blur(); } 
}); 

編輯: 我已經兌現$( '本');作爲建議的一個對象。

我已經決定它可能冒泡了,文檔建議我停止傳播(),但這並不起作用,我使用委託,因爲我通過ajax調用這可能是爲什麼stoppropagation()doesn'工作?

回答

0

第一:$(this)應該被緩存。其餘的$()也可以被緩存,並且在函數之前。

二:使用策略模式

+0

有趣,生病給它前。 – Edward

+0

如果仍然有問題給更多的代碼或應用程序的鏈接,因爲我不能做任何事情:) – Sorprop

+0

因此,不應該鎖定它自己? – Edward