如何使用bootstrap'突出显示数据列表中的一行;s表的悬停类
How to highlight a row in a list of data with bootstrap's table table-hover class
我在数据列表上使用bootstrap的表类(特别是class="table table hover")(在单页应用程序中使用敲除进行数据绑定)-
<table id="tblAllCert" border="0" class="table table-hover" width="100%">
<tbody data-bind="foreach: allCertificates">
<tr id="AllCertRow" style="cursor: pointer" data-bind="a: console.log($data), click: $parent.selectThing, css: { 'highlight': $parent.isSelected() == $data } ">
<td>
<b><span data-bind=" text: clientName"></span> (<span data-bind=" text: clientNumber"></span>) <span data-bind=" text: borrowBaseCount"></span> Loan(s) </b>
Collateral Analyst: <span data-bind=" text: userName"></span>
Certificate: <span data-bind="text: lwCertID"></span> Request Date: <span data-bind=" text: moment(requestDate).format('DD/MMM/YYYY')"></span>
</td>
<td data-bind="text: $parent.isSelected"></td>
</tr>
</tbody>
</table>
我需要以下操作-
1.当用户点击一行时,应实现class="highlight"(高亮显示点击的行)
2.当用户单击另一行时,删除第一行上的高亮显示类,并将class="highlight"应用于新选择的行。将第一行返回到bootstraps table class(class="table table hover")中的原始颜色。
简而言之,只应突出显示单击的行。其他行应该保留bootstrap的class="table table hover"的特性。想法?
编辑7/23/2013小提琴:http://jsfiddle.net/wood0615/5BKt6/-(淘汰码)-
define(['services/logger', 'durandal/system', 'durandal/plugins/router', 'services/CertificateDataService'],
function (logger, system, router, CertificateDataService) {
var allCertificates = ko.observableArray([]);
var myCertificates = ko.observableArray([]);
//var serverSelectedOptionID = ko.observableArray();
var isSelected = ko.observable();
var serverSelectedOptionID = ko.observable();
var CurrentDisplayThing = ko.observable(allCertificates);
var serverOptions = [
{ id: 1, name: 'Certificate', OptionText: 'lwCertID' },
{ id: 2, name: 'Client Name', OptionText: 'clientName' },
{ id: 3, name: 'Client Number', OptionText: 'clientNumber' },
{ id: 4, name: 'Request Date', OptionText: 'requestDate' },
{ id: 5, name: 'Collateral Analyst', OptionText: 'userName' }
];
var activate = function () {
// go get local data, if we have it
return SelectAllCerts(), SelectMyCerts();
};
var vm = {
activate: activate,
allCertificates: allCertificates,
myCertificates: myCertificates,
title: 'Certificate Approvals',
SelectMyCerts: SelectMyCerts,
SelectAllCerts: SelectAllCerts,
theOptionId: ko.observable(1),
serverOptions: serverOptions,
serverSelectedOptionID: serverSelectedOptionID,
SortUpDownAllCerts: SortUpDownAllCerts,
isSelected: ko.observable(),
selectThing: function(row, event) {
isSelected(row.lwCertID);
}
};
serverSelectedOptionID.subscribe(function () {
var sortCriteriaID = serverSelectedOptionID();
allCertificates.sort(function (a, b) {
var fieldname = serverOptions[sortCriteriaID - 1].OptionText;
if (a[fieldname] == b[fieldname]) {
return a[fieldname] > b[fieldname] ? 1 : a[fieldname] < b[fieldname] ? -1 : 0;
}
return a[fieldname] > b[fieldname] ? 1 : -1;
});
});
allCertificates.valueHasMutated();
return vm;
////////////
function SortUpDownAllCerts() {
allCertificates.sort();
allCertificates.valueHasMutated();
}
function SortUpDownMyCerts() {
return allCertificates.sort()
}
function SelectAllCerts() {
return CertificateDataService.getallCertificates(allCertificates);
}
function SelectMyCerts() {
return CertificateDataService.getMyCertificates(myCertificates);
}
//function RowSelected() {
// $('#tblAllCert tr').on('click', function (event) {
// $(this).addClass('highlight').siblings().removeClass('highlight');
// });
// $("#tblAllCert tr").addClass("highlight");
// $('#tblAllCert tr').css('background-color: Red');
//}
});
$('table').on('click','tr',function(e){
$('table').find('tr.highlight').removeClass('highlight');
$(this).addClass('highlight');
})
http://jsfiddle.net/XKjGJ/
通过将视图上的数据绑定更改为-,我终于让它工作起来了
<tr id="AllCertRow" style="cursor: pointer" data-bind="click: $parent.selectThing, css: { highlight: $parent.isSelected() == $data.lwCertID }">
我缺少的关键是css绑定中的布尔比较。感谢那些回复我帖子的人。
var vm = function() {
var self=this;
self.isSelected = ko.observable(false);
self.selectThing = function (row, event) {
self.isSelected(true);
}.bind(this);
这将使您的行在选择时更改颜色。
插入您的逻辑,以便只选择一行。现在,它选择所有行,因为它是父属性,并且所有行都绑定到此父级属性。
这不是一个确切的解决方案,但这将帮助您绕过KO
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 手风琴可点击并悬停
- 悬停功能触发器
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- css(或jQuery)悬停时淡入淡出
- 动态插入的表:JQuery未检测到最后一行
- jquery快速悬停问题
- 如何在悬停时流畅地更改单词
- PHP&CSS:如何获得表中每一行的悬停效果
- 当我将鼠标悬停在一行上时,如何更改两个表行 css
- 当鼠标悬停在一行上时,哪个plot.ly json属性可以显示所有悬停数据
- 如何通过jQuery仅在悬停一行(而不是悬停的行)时向每个表行添加属性
- 将鼠标悬停在表中的某一行上时显示按钮
- 如何使用bootstrap'突出显示数据列表中的一行;s表的悬停类
- IE9悬停bug -悬停状态在移动一行后保持不变
- 显示行详细信息作为弹出/顶部提示窗体鼠标悬停在每一行在KendoUI网格