2011-05-13 145 views
2

当某行中的某个元素失去焦点时,行上的JQuery blur事件触发。对于下面的示例,我有一个示例表,每行中有两个输入字段;如果我们尝试执行此代码,并且用户将焦点从一个输入控件留在同一行中的另一个输入控件中,我将获得为该行触发的模糊事件。思考?JQuery模糊事件

<table id="sample" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
     <td>1.1</td> 
     <td><input type="text" name="name" value=" " /></td>    
     <td>1.2</td> 
     <td><input type="text" name="name" value=" " /></td> 
    </tr> 
    <tr> 
     <td>2.1</td> 
     <td><input type="text" name="name" value=" " /></td>    
     <td>2.2</td> 
     <td><input type="text" name="name" value=" " /></td> 
    </tr> 
    <tr> 
     <td>3.1</td> 
     <td><input type="text" name="name" value=" " /></td>    
     <td>3.2</td> 
     <td><input type="text" name="name" value=" " /></td> 
    </tr> 
    <tr> 
     <td>4.1</td> 
     <td><input type="text" name="name" value=" " /></td>    
     <td>4.2</td> 
     <td><input type="text" name="name" value=" " /></td> 
    </tr> 
</table> 

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     $('#sample').delegate('tr', 'blur', function (event) { 
      alert('Row Blurred'); 
     }); 
    }); 
</script> 

回答

5

livedelegate方法不支持blur事件,因为它没有泡沫。
相反,处理focusout,他们支持

+0

是的,你是正确的,根据文件;但如果您为IE9尝试使用模糊和聚焦事件进行此示例,则您将获得相同的行为。 – 2011-05-13 14:55:51

+0

我只有在表格中的某一行丢失焦点时才会尝试进行focusout事件。 – 2011-05-13 14:58:03

+0

@Mloloob:行没有焦点。你需要绑定到''元素。 – SLaks 2011-05-13 14:59:33