【发布时间】:2020-02-24 13:39:15
【问题描述】:
我有一个包含类名“复选框按钮”的复选框。当页面加载时,下面的函数可以完美执行。但是当 jquery 成功附加一个新创建的复选框时,下面的函数不会执行。
$(function() {
$('.button-checkbox').each(function() {
var $widget = $(this),
$button = $widget.find('button'),
$checkbox = $widget.find('input:checkbox'),
color = $button.data('color'),
settings = {
on: {
icon: 'glyphicon glyphicon-check'
},
off: {
icon: 'glyphicon glyphicon-unchecked'
}
};
// Event Handlers
$button.on('click', function() {
$checkbox.prop('checked', !$checkbox.is(':checked'));
$checkbox.triggerHandler('change');
updateDisplay();
});
$checkbox.on('change', function() {
updateDisplay();
});
function updateDisplay() {
var isChecked = $checkbox.is(':checked');
$button.data('state', (isChecked) ? "on" : "off");
// Set the button's icon
$button.find('.state-icon').removeClass().addClass('state-icon ' + settings[$button.data('state')].icon);
}
function init() {
updateDisplay();
// Inject the icon if applicable
if ($button.find('.state-icon').length == 0) {
$button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i> ');
}
}
init();
});
});
【问题讨论】:
标签: javascript php jquery css laravel