jQuery UI Combobox Widget无法使用click()事件?

时间:2012-05-03 19:56:26

标签: jquery jquery-ui

为什么我写一个click()事件,其中输入字段(由jquery ui组合框小部件创建)在选择器的范围内,事件永远不会触发?

我的表单有一个验证,突出显示整个父级< div>当最终用户没有正确填写时,使用css类'reqFieldGroupEmpty'的那个表单字段。

当用户点击错过的必填字段时,我有一个click()事件删除该表单字段的父类

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

但是,正如我在开始时提到的,创建的组合框不会触发click(),因此不会删除该类。

我错过了什么?

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

尝试绑定到focus()事件而不是单击...

答案 1 :(得分:0)

JakeCigar通过jQuery论坛回复: http://forum.jquery.com/topic/jquery-ui-combobox-widget-not-working-with-click-event#14737000003343231

  

单击仅查找设置时存在的元素。   使用延迟形式的.on() - jQuery API

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

JΛ̊KE“

答案 2 :(得分: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/