日期:2014-05-16  浏览次数:20322 次

jquery 匹配第一个元素并绑定事件
exp:
HTML code
<div id="test">
<ul>
  <li><input name="name[]" type="text" value="" /></li>
   <li><input name="sex[]" type="text" value="" /></li>

</ul>
//注意一下,以下的ul元素是clone出来的
<ul>
  <li><input name="name[]" type="text" value="" /></li>
   <li><input name="sex[]" type="text" value="" /></li>
</ul>
</div>

---------script--------------
JScript code
<script>
$(function(){
$("#test > ul:eq(0) > li > input:eq(0)").bind({
  focus:function(){
   alert('绑定了鼠标移动事件');
  },
  blur:function(){
    alert('绑定了鼠标离开事件');
  }
})
})
</script>


这些都没有问题,问题是,当我鼠标移到第二个ul的第一个input的时候,事件也有效了,我这里不需要有效,请问有什么方法可以改进

------解决方案--------------------
$(function(){
$("#test ul:first li :input:first").bind({
focus:function(){
alert('绑定了鼠标移动事件');
},
blur:function(){
alert('绑定了鼠标离开事件');
}
})
})

------解决方案--------------------
HTML code
<div id="test">
    <ul>
        <li><input name="name[]" type="text" value="" /></li>
        <li><input name="sex[]" type="text" value="" /></li>
    </ul>
</div>
<script type="text/javascript">
    $(document).ready(function(){
        $("#test ul").clone().appendTo("#test");//先克隆后绑定
        $("#test ul:eq(0) li:eq(0) input").bind({
            focus:function(){
                alert('绑定了鼠标移动事件');
            },
            blur:function(){
                alert('绑定了鼠标离开事件');
            }
        })
    })
</script>