如何更改剑道网格中主行点击上展开和折叠细节的咏叹调标签



我想更改剑道网格中主行点击上的展开和折叠细节中的咏叹调标签,但看起来剑道再次覆盖了更改后的标签。作为测试,我创建了"new label"属性。插入正确。

如何正确更改咏叹调标签?

PS:由于wcag问题,我不得不更改名称。

<!DOCTYPE html>
<html>
<head>
<base href="http://demos.telerik.com/kendo-ui/grid/hierarchy">
<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<title></title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.common.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.default.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.default.mobile.min.css" />
<script src="https://kendo.cdn.telerik.com/2017.3.1026/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.3.1026/js/kendo.all.min.js"></script>

</head>
<body>
<div id="example">
<div id="grid"></div>
<script>
$(document).ready(function() {
var element = $("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees"
},
pageSize: 6,
serverPaging: true,
serverSorting: true
},
height: 600,
sortable: true,
pageable: true,
detailInit: detailInit,
dataBound: function(e) {
var grid = e.sender;

grid.tbody.find("tr.k-master-row").click(function(e){                            
var target = $(e.target);  

if ((target.hasClass("k-i-collapse"))) {
target.attr('aria-label', 'Collapse new');
target.attr('new-label', 'Collapse new');
console.log("collapse");
return;
}       

if ((target.hasClass("k-i-expand"))) {
target.attr("aria-label", "Expand new");
target.attr('new-label', 'Expand new');
console.log("expand");
return;
}  


})
	
},
columns: [
{
field: "FirstName",
title: "First Name",
width: "110px"
},
{
field: "LastName",
title: "Last Name",
width: "110px"
},
{
field: "Country",
width: "110px"
},
{
field: "City",
width: "110px"
},
{
field: "Title"
}
]
});
});
function detailInit(e) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
serverPaging: true,
serverSorting: true,
serverFiltering: true,
pageSize: 10,
filter: { field: "EmployeeID", operator: "eq", value: e.data.EmployeeID }
},
scrollable: false,
sortable: true,
pageable: true,
columns: [
{ field: "OrderID", width: "110px" },
{ field: "ShipCountry", title:"Ship Country", width: "110px" },
{ field: "ShipAddress", title:"Ship Address" },
{ field: "ShipName", title: "Ship Name", width: "300px" }
]
});
}

</script>
</div>
</body>
</html>

我现在已经解决了它(不太好,但很少见(。

我假设初始化时所有行都被折叠。我添加aria-expanded = "false"。我还设置了aria-label = "Open Translate"(将"打开翻译"更改为所需文本(。

在dataBound中,我做了一个不情愿的setTimeOut(不知道500毫秒是否足够,服务器响应时间等(

setTimeout (function () {
       target.attr ('aria-label', 'Open Translate');
}, 500);

<!DOCTYPE html>
<html>
<head>
<base href="http://demos.telerik.com/kendo-ui/grid/hierarchy">
<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<title></title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.common.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.default.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.default.mobile.min.css" />
<script src="https://kendo.cdn.telerik.com/2017.3.1026/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.3.1026/js/kendo.all.min.js"></script>

</head>
<body>
<div id="example">
<div id="grid"></div>
<script>
$(document).ready(function() {
var element = $("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees"
},
pageSize: 6,
serverPaging: true,
serverSorting: true
},
height: 600,
sortable: true,
pageable: true,
detailInit: detailInit,
dataBound: function(e) {
var grid = e.sender;

$('.k-i-expand').attr('aria-expanded', 'false');
$('.k-i-expand').attr('aria-label', 'Open Translate');

grid.tbody.find("tr.k-master-row").click(function(e){
var target = $(e.target);
if ((target.hasClass("k-i-collapse"))) {
target.attr('aria-expanded', 'false');
setTimeout(function() {
target.attr('aria-label', 'Open Translate');
}, 200);
return;
} else if ((target.hasClass("k-i-expand"))) {
target.attr('aria-expanded', 'true');
setTimeout(function() {
target.attr('aria-label', 'Close Translate');
}, 200);
return;
}
})
	
},
columns: [
{
field: "FirstName",
title: "First Name",
width: "110px"
},
{
field: "LastName",
title: "Last Name",
width: "110px"
},
{
field: "Country",
width: "110px"
},
{
field: "City",
width: "110px"
},
{
field: "Title"
}
]
});
});
function detailInit(e) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
serverPaging: true,
serverSorting: true,
serverFiltering: true,
pageSize: 10,
filter: { field: "EmployeeID", operator: "eq", value: e.data.EmployeeID }
},
scrollable: false,
sortable: true,
pageable: true,
columns: [
{ field: "OrderID", width: "110px" },
{ field: "ShipCountry", title:"Ship Country", width: "110px" },
{ field: "ShipAddress", title:"Ship Address" },
{ field: "ShipName", title: "Ship Name", width: "300px" }
]
});
}

</script>
</div>
</body>
</html>

最新更新