The*_*ear 1 jquery jquery-ui selectable
我想要做的是允许用户使用jQuery UI select一次从一列中选择行.
我需要做的是限制跨越多列的拖动/突出显示效果.例如,用户开始拖动事件的哪一列,他们不能突出显示该列的一侧.
表格代码
<table id="selectable">
<tr>
<td data-col="0">
<td data-col="1">
<td data-col="2">
</tr>
<tr>
<td data-col="0">
<td data-col="1">
<td data-col="2">
</tr>
<tr>
<td data-col="0">
<td data-col="1">
<td data-col="2">
</tr>
...etc
</table>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
var currentCol;
$("#selectable").selectable({
filter:'td',
selecting: function(event, ui){
console.log($(ui.selected));
}
});
Run Code Online (Sandbox Code Playgroud)
但我无法获得data-col它的价值,它总是如此null.
感谢Daniel指出我正确的方向.
为了将拖动锁定在单个列的顶部,这就是我所做的.
var currentCol;
$("#selectable").selectable({
filter: "td",
start: function(event, ui) {
$("td").removeClass("ui-selected");
},
stop: function(event, ui) {
//Reset selector.
currentCol = undefined;
},
selecting: function(event, ui) {
if (currentCol === undefined) {
currentCol = $(ui.selecting).attr('data-col');
}
var nthChild = parseInt(currentCol) + 1; //Add one as nthChild is not zero index
for (var i = 1; i <= 9; i++) {
if (i != nthChild) {
$("td.ui-selecting:nth-child(" + i + ")").each(function() {
$(this).removeClass("ui-selecting");
});
}
}
;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5179 次 |
| 最近记录: |