<input type="text" name="address1" id="address1" onFocus="open1();">
<input type="text" name="address2" id="address2" onFocus="open1();">
<input  type="text" name="address3" id="address3" onFocus="open1();">
<input type="text" name="address4" id="address4" onFocus="open1();">如以上代码,四个文本控件都调用open1(),那在open1过程中如何获取当前是由那个控件触发事件的。
function open1()
{
  var id=$(this).attr("id");
  alert(id);}获取的总是显示:undefined,请各位指教

解决方案 »

  1.   

    绑定事件的方法错了,要不你用jquery的绑定方法如下
    这种绑定this就是触发事件的对象function open1(){
      var id=$(this).attr("id");
      console.log(id);
    }$("input[name^='address']").on("focus",open1);要不你写html时这样绑定
    <input type="text" name="address4" id="address4" onFocus="open1(this);">
    函数则加一个对象function open1(ob)
    {
      var id=$(ob).attr("id");
      alert(id);
    }还有一种方法,用Event对象找出当前触发的对象
      

  2.   

    function open1()
    {
      var id=$(arguments[0].srcElement).attr("id");
      alert(id);}
      

  3.   


    正解,你需要在方法里面传入当前节点对象才可以,不能直接使用this来寻找