jQuery 中 bootstrap-select 的停止传播
stopPropagation for bootstrap-select in jQuery
我有一个 table 可以在单击该行时突出显示该行。我将 silvio moreto 的 Bootstrap-select 放在一行中,但是当我 select 下拉菜单时,会执行行突出显示。我怎样才能避免这种情况?
JSFiddle:http://jsfiddle.net/xjmf8qqt/(不确定为什么行突出显示在这里不起作用,但它在本地运行良好)
当我执行以下操作时,下拉列表中断:
$('.bootstrap-select').on('click', 'button', function(event) {
event.stopPropagation();
});
$( '#resultTable' ).delegate( 'tr', 'click', function ( e ) {
if ( $( e.target ).is( 'tr' ) || $( e.target ).is( 'td' )) {
$(this).toggleClass('warning');
var checkbox = $(this).find('input[type=checkbox]');
$(checkbox).prop("checked", !checkbox.prop("checked"));
} else if($(e.target).is( ':checkbox' )) {
$(e.target).closest('tr').toggleClass('warning');
}else {
console.log("select " +e.target);
}
});
Fiddle 同样。您需要确保您的 table 中的所有事件都有一个事件处理程序。所以你需要检查发生点击事件的目标,因为你使用的是 bootstrap select,你可以点击它创建的 span 或按钮。如果两者都没有点击,则突出显示该行。
编辑 - 更新 fiddle。这里一切正常。
我有一个 table 可以在单击该行时突出显示该行。我将 silvio moreto 的 Bootstrap-select 放在一行中,但是当我 select 下拉菜单时,会执行行突出显示。我怎样才能避免这种情况?
JSFiddle:http://jsfiddle.net/xjmf8qqt/(不确定为什么行突出显示在这里不起作用,但它在本地运行良好)
当我执行以下操作时,下拉列表中断:
$('.bootstrap-select').on('click', 'button', function(event) {
event.stopPropagation();
});
$( '#resultTable' ).delegate( 'tr', 'click', function ( e ) {
if ( $( e.target ).is( 'tr' ) || $( e.target ).is( 'td' )) {
$(this).toggleClass('warning');
var checkbox = $(this).find('input[type=checkbox]');
$(checkbox).prop("checked", !checkbox.prop("checked"));
} else if($(e.target).is( ':checkbox' )) {
$(e.target).closest('tr').toggleClass('warning');
}else {
console.log("select " +e.target);
}
});
Fiddle 同样。您需要确保您的 table 中的所有事件都有一个事件处理程序。所以你需要检查发生点击事件的目标,因为你使用的是 bootstrap select,你可以点击它创建的 span 或按钮。如果两者都没有点击,则突出显示该行。
编辑 - 更新 fiddle。这里一切正常。