Mousedown jquery除了或不

时间:2012-10-31 17:21:58

标签: javascript jquery exception

我有以下javascript,如果用户点击.field_trip_mini_div中的删除div,我不希望触发此mousedown函数。删除div id是'delete'。我应该添加什么代码,以便在用户点击删除div时,鼠标按下功能不会进行?我尝试将第一行更改为

$(".field_trip_mini_div :not('#delete')").live({  

但那没用。有没有办法可以在第二行代码上停止它?

$(".field_trip_mini_div").live({  
    mousedown: function(){     
    $.ajax({
        type: "POST",
        url: "/field_trips/"+selected_field_trip_id+"/reload_div",
        data: {id: selected_field_trip_id},
        success: function(response)
           {
            $('#selected_fieldTrip_div').html(response);
           }
        });
});

编辑:我原来使用#,谢谢你的答案,但这是一个Stack Overflow输入错误。

3 个答案:

答案 0 :(得分:1)

由于删除是id使用#,我建议您使用on作为live is deprecated

$(".field_trip_mini_div :not('#delete')").live({  

或者您可以在单击删除时跳过代码

$(".field_trip_mini_div").live({  
    mousedown: function(evt){    
    if (evt.target.id == "delete") 
       return;
      $.ajax({
          type: "POST",
          url: "/field_trips/"+selected_field_trip_id+"/reload_div",
          data: {id: selected_field_trip_id},
          success: function(response)
             {
              $('#selected_fieldTrip_div').html(response);
             }
          });        
});

答案 1 :(得分:1)

使用此:

$(".field_trip_mini_div :not('#delete')").on({

注意:不要使用“live”,因为它已被弃用;改为使用“on”。

答案 2 :(得分:1)

delete内的元素是field_trip_mini_div吗?如果是这样,您可以使用e.target检查所点击元素的目标ID:

$(".field_trip_mini_div").live({  
    mousedown: function(e){    
      if ($(e.target).attr("id")!= "delete") // This line right here
      {
        $.ajax({
            type: "POST",
            url: "/field_trips/"+selected_field_trip_id+"/reload_div",
            data: {id: selected_field_trip_id},
            success: function(response)
               {
                $('#selected_fieldTrip_div').html(response);
               }
            });
      }
  });

有关事件和event对象的一些信息:http://www.w3schools.com/jsref/dom_obj_event.asp