2012-05-03 16 views
0

當我寫一個click()事件,其中輸入字段(由jquery ui combobox小部件創建)位於選擇器的範圍內,事件從不觸發時,該怎麼辦?jQuery UI Combobox Widget不能使用click()事件嗎?

我有一個驗證表單,當最終用戶沒有正確填寫時,使用css類'reqFieldGroupEmpty'突出顯示該表單字段的整個父<div>。

當錯過必填字段內用戶點擊我有一個點擊()事件刪除類表單域的父

$('input, textarea, select').click(function() { $('div').removeClass('reqFieldGroupEmpty') }); 

然而,正如我在一開始提到的,組合框創建的ISN」觸發click(),因此不會刪除類。

我錯過了什麼?

謝謝你的幫忙!

+0

您能否提供一個jsfiddle.net來查看它發生了什麼?如果你使用chrome或firefox與螢火蟲,喲可以嘗試設置一個斷點,看看它正在執行 – Jarry

+0

我一直在使用firebug console.log(「我已被點擊」)消息與點擊()事件函數,並且它會與jQuery選擇器中的所有其他輸入一起執行,而不是由小部件創建的那些輸入?我甚至嘗試用$('input [role =「textbox」]。ui-autocomplete-input')去輸入這個輸入的核心。click(function(){console.log(「I've been clicked 「)});並且這也不起作用 – WizzyBoom

回答

0

試試)事件,而不是點擊結合對焦(...

+0

好主意,但沒有去。這幾乎就像是由於輸入元素是由小部件創建的,它沒有得到綁定到它的任何事件處理程序?如果從腳本創建事件,是否有強制將事件綁定到元素的方法?我應該提到我沒有與live()或on()的運氣,但我可能會錯誤地實現它們。我只是jQuery 1.7。思考? – WizzyBoom

+0

真的需要看到你正在使用的HTML和JavaScript能夠幫助更多......你能爲它創建一個JSFiddle嗎? –

0

我想我可以重現什麼wizzy是看到這個代碼工作罰款$(function(){...});內:

$('<button>', {text: 'Go'}).appendTo($('body')).on('click', function() { 
    console.log('clicked'); 
}); 

但是在一個小部件中,點擊從不會被記錄下來例如:

_init: function() { 
    $('<button>', {text: 'Go'}).appendTo(this.element).on('click', function() { 
     console.log('clicked'); 
    }); 
} 

該按鈕被追加,但沒有點擊事件似乎被激發。

http://jsfiddle.net/cawoodm/cww3c/

+0

好的,在我的情況下,問題是我在調用jQuery UI。在綁定事件後,我的元素上的button()函數(請參閱jsfiddle鏈接)。這似乎有刪除現有綁定的效果。 – Marc