0

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

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

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

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

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

我错过了什么?

谢谢你的帮忙!

4

3 回答 3

0

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

于 2012-05-04T00:06:46.037 回答
0

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

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

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

JΛ̊KE"

于 2012-05-04T20:11:32.177 回答
0

我想我可以重现 wizzy 看到的内容。此代码在 a 中运行良好$(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/

于 2012-11-03T14:16:02.223 回答