2013-06-25 40 views
0

我有幾個文本框具有相同的類,並且想要爲它們全部的焦點事件分配一個方法。 這不起作用:使用jquery爲多個控件分配事件方法

$('.postal').onfocus = setLeft(); 

在開發工具的控制類‘postal x-form-text x-form-field’,所以纔會使上述jQuery的不工作?

回答

3

這應該工作 -

$('.postal').on('focus',setLeft); 
+0

謝謝!這工作馬上。我的jquery是非常有限的:你有任何我可以使用的網頁資源銳化嗎? – callisto

+0

http://learn.jquery.com/ –

+1

@callisto - 他們有出色的文檔。例如,如果你想在焦點上使用jquery,那麼'.focus()'頁面就是頂部。從實驗的角度來看,'.on()'選擇器可以用於任何事件...'onhover','onclick'等,甚至可以在一個'.on()'聲明中綁定多個處理程序! – PlantTheIdea

0

使用jQuery:

$('.postal').on('focus',setLeft); 
0

有一個快捷鍵以及

$('.postal').focus(setLeft);

0

好了,這是一個基本的。

使用jQuery時,您可以在callback中指定任何方法。

大多數的時候,我們用functions這樣:

$('.postal').on('focus', function(){ /* Do something */ }); 

但是,這也是有效的:

$('.postal').on('focus', hello); 

function hello(){ alert('hello'); }; 

所以,我認爲第二種方法適合您的需求分配多的方法控件使用相同的class

1

並非試圖竊取任何風頭,只是提供有關使用.on()處理程序的其他信息。

您可以將它與其他幾個處理程序結合使用,以整合代碼並將DOM影響降到最低!例如:

$('.postal').on({ 
    focus:setLeft, // predefined functions can be used as long as there are no parameters passed 
    click:function(){ 
     alert('clicked'); 
    }, 
    blur:function(){ 
     hideMe($(this)); // for functions that pass in parameters, encase them in separate functions 
    } 
}); 

這是利用.on()一個令人難以置信的強大和有效的方式,因爲DOM只刮一次。這比使用.focus(),.click().blur()的簡寫進行不同的綁定更好,這將要求DOM在每次綁定時被抓取。

+0

謝謝你。我現在正處於學習的邊緣。 – callisto

相關問題