我正在使用prettyCheckboxes,我想更改它,以便也可以单击div包装器以及单选按钮。单选按钮/标签的当前JS是
$label = $('label[for="'+$(this).attr('id')+'"]');
// Add the checkbox holder to the label
$label.prepend("<span class='holderWrap'><span class='holder'></span></span>");
// If the checkbox is checked, display it as checked
if($(this).is(':checked')) { $label.addClass('checked'); };
// Assign the class on the label
$label.addClass(settings.className).addClass($(this).attr('type')).addClass(settings.display);
// Assign the dimensions to the checkbox display
$label.find('span.holderWrap').width(settings.checkboxWidth).height(settings.checkboxHeight);
$label.find('span.holder').width(settings.checkboxWidth);
// Hide the checkbox
$(this).addClass('hiddenCheckbox');
// Associate the click event
$label.bind('click',function(){
$('input#' + $(this).attr('for')).triggerHandler('click');
if($('input#' + $(this).attr('for')).is(':checkbox')){
$(this).toggleClass('checked');
$('input#' + $(this).attr('for')).checked = true;
$(this).find('span.holder').css('top',0);
}else{
$toCheck = $('input#' + $(this).attr('for'));
// Uncheck all radio
$('input[name="'+$toCheck.attr('name')+'"]').each(function(){
$('label[for="' + $(this).attr('id')+'"]').removeClass('checked');
});
$(this).addClass('checked');
$toCheck.checked = true;
};
});
我想这样做,因此$(this).parent()也会调用click函数。
我有什么想法可以做到这一点?
答案 0 :(得分:0)
使用.add创建一个自我+父的jQuery对象:
var labelAndParent = $label.add($(this).parent());
然后绑定到该对象:
labelAndParent.bind('click',function(){
// ...
});