我有幾個文本框具有相同的類,並且想要爲它們全部的焦點事件分配一個方法。 這不起作用:使用jquery爲多個控件分配事件方法
$('.postal').onfocus = setLeft();
在開發工具的控制類‘postal x-form-text x-form-field
’,所以纔會使上述jQuery的不工作?
我有幾個文本框具有相同的類,並且想要爲它們全部的焦點事件分配一個方法。 這不起作用:使用jquery爲多個控件分配事件方法
$('.postal').onfocus = setLeft();
在開發工具的控制類‘postal x-form-text x-form-field
’,所以纔會使上述jQuery的不工作?
這應該工作 -
$('.postal').on('focus',setLeft);
使用jQuery:
$('.postal').on('focus',setLeft);
有一個快捷鍵以及
$('.postal').focus(setLeft);
好了,這是一個基本的。
使用jQuery
時,您可以在callback
中指定任何方法。
大多數的時候,我們用functions
這樣:
$('.postal').on('focus', function(){ /* Do something */ });
但是,這也是有效的:
$('.postal').on('focus', hello);
function hello(){ alert('hello'); };
所以,我認爲第二種方法適合您的需求分配多的方法控件使用相同的class
。
並非試圖竊取任何風頭,只是提供有關使用.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在每次綁定時被抓取。
謝謝你。我現在正處於學習的邊緣。 – callisto
謝謝!這工作馬上。我的jquery是非常有限的:你有任何我可以使用的網頁資源銳化嗎? – callisto
http://learn.jquery.com/ –
@callisto - 他們有出色的文檔。例如,如果你想在焦點上使用jquery,那麼'.focus()'頁面就是頂部。從實驗的角度來看,'.on()'選擇器可以用於任何事件...'onhover','onclick'等,甚至可以在一個'.on()'聲明中綁定多個處理程序! – PlantTheIdea