使用jQuery事件委派找错e.target时出错

时间:2014-09-05 14:00:31

标签: javascript jquery event-handling

我使用jQuery事件委派来获取此标记上的点击事件(包含多个checkboxContainer,这就是为什么我要将.checkboxContainer上的事件委托给父el点击可以在.checkboxContainer或其任何children)进行:

  <div class="checkboxContainer" id="equi-select">
     <span role="checkbox" class="checkboxSpan ">
        <div class="blankDiv" style="display: block;">
           <img class="blankImg" src="http://maps.gstatic.com/mapfiles/mv/imgs8.png">
        </div>
       </span>
       <label class="checkboxLabel">Equipment</label>
  </div>

这是我的jQuery代码:

 el.on("click",".checkboxContainer",function(e){
    var $parent;
    if($(e.target).hasClass(".checkboxContainer"))
        $parent=$(e.target);
    else
        $parent=$(e.target).parents(".checkboxContainer").eq(0);
    var res=$parent.attr("id");
    var objtype=res.substring(0,4);//error here
    var $blankDiv=$parent.find(".blankDiv");
    console.log($blankDiv.css("display"));
    if($blankDiv.css("display")==="none")
    {
        console.log(objtype);
        $blankDiv.css("display","block");
        //make ajax requests to get data from server
     }
     else
        $blankDiv.css("display","block");
 });

这是错误:

Uncaught TypeError: Cannot read property 'substring' of undefined

如何改善活动的定位?

1 个答案:

答案 0 :(得分:0)

将toString()方法添加到becomming行

var res=$parent.attr("id").toString();