jQuery,用.bind和.focus编写if语句寻找替代执行方式

时间:2010-06-26 15:54:13

标签: jquery debugging forms webkit

简要概要,这段代码非常精美,除了webkit上的单选按钮外,还可以实现它的功能。

$('input, textarea, select').focus(function(){
    $(this).parents('.row').addClass("hilite");
        }).blur(function(){
            $(this).parents('.row2').removeClass("hilite");
});

我做了一些研究并测试了几次并使用

$('input, textarea, select').bind('change'(){
    $(this).parents('.row').addClass("hilite");
        }).blur(function(){
            $(this).parents('.row').removeClass("hilite");
});

我能够使用webkit单选按钮,但它不承认模糊,因此不会删除hilite。那么有没有另一种方法来写这个,所以它将删除模糊vs mouseleave上的类(这确实有效)。一如既往地感谢!

2 个答案:

答案 0 :(得分:1)

尝试为:radio按钮提供点击事件以强制对焦。似乎在webkit中工作。

试一试: http://jsfiddle.net/5dDQn/

$(':radio').click(function() {
    $(this).focus();
});

答案 1 :(得分:0)

这种做法可能不符合“漂亮”的要求,但我会这样做:

$('input, textarea, select')
  .focus(function() {
    $(this).parents('.row').addClass('hilite');
    if ($(this).is(':radio')) {
      $(this).one('mouseleave', function () {
        $(this).parents('.row').removeClass('hilite');
      });
    }
  })
  .blur(function() {
    $(this).parents('.row2').removeClass('hilite');
  });

这取决于我相信你指出的东西 - 单选按钮会接受焦点,似乎不会触发模糊,但是mouseleave似乎正常工作。