2012-01-29 27 views
0

我的应用程序使用复选框按类型和区域对结果进行排序。有2个字段集,一个用于类型,另一个用于区域。为什么这一点的javascript使我的复选框难以检查?

区域复选框链接到图像地图的区域,所以它也可以用来选择多个区域进行排序。

我有这个JavaScript:

该链接的区域复选框和图像映射的区域,以便它们都充当表单输入

var $area = $('area'); 
    $area.click(function(){ 
     var $checkbox = $('#' + $(this).data("areanum")); 
     $checkbox.attr('checked', !$checkbox.attr('checked')).button('refresh'); 
    }); 
    $('label').click(function() { 
     $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
     return true; 
    });  

这打破了类型复选框(他们不会注册为表单提交时被检查),除非我改变位:

 $('label').click(function() { 
      $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
      return false; 
     }); 

 $('label').click(function() { 
      $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
      return true; 
     }); 

(改最后一行返回true)

但是这使得复选框难以选择,他们到一个单一的点击响应如果单击蜱地区,但只双击如果响应复选框标签被点击。

我希望这是有道理的,如果有任何澄清需要我会努力更好地解决问题。

感谢您的任何帮助。

+1

你可以在jsFiddle上发布相关的功能示例吗? – 2012-01-29 19:59:22

回答

1

我认为你不需要labelclick处理程序,因为在所有你只是通过触发区域click处理器将由标签的默认行为本身得到照顾时,它的for属性设置为拨动checkboxchecked财产checkbox ID。

+0

太棒了!非常感谢它现在按预期工作。 – Dave 2012-01-29 21:15:29

相关问题