背景:我有一个使用jQuery Plugin的基本表,它实际上允许您将数字居中放在表格中的小数点附近。它通过添加一个"添加"等级的附加td来实现这一点。 (由表中的+表示) - 这很有效,除了我不知道如何制作它所以我可以将鼠标悬停在最后一个"添加" td(由表中的[+]表示)并使其突出显示与在表格中悬停在[7]上时发生的相同
这是我认为需要修改的代码:
$('td').on('mouseenter', function() {
var id = $(this).data('id');
var rule = RULES[id];
if (rule == null)
return;
$highlightCells = $('.default-highlight').removeClass('default-highlight');
rule.forEach(function(id) {
$('td').filter(function() {
return $(this).data('id') === id;
}).next().andSelf().addClass(HIGHLIGHT)
});
});
可能的解决方案:我在想我应该能够创建一个变量:
var prevId = $(this).prev().attr("data-id");
然后就像
if(prevId == RULES[id]){$highlightCells...}
但我还没有能够采用这种方法。
希望顶部的Codepen很有帮助。
任何想法都非常感激,如果这很明显就道歉,我睡了这个,但还没有真正开始工作。谢谢!
答案 0 :(得分:0)
我用solo if语句修复了这个问题。我相信这不是最好的解决方案,但它正在发挥作用......所以,这对我来说已经足够了。
感谢阅读。
如果声明和一些周围的代码(都可以在Codpen中看到):
/*HIGHLIGHTING ON MOUSEENTER*/
$('td').on('mouseenter', function() {
var prevId = $(this).prev().attr("data-id");
var id = $(this).data('id');
var rule = RULES[id];
var rulee = RULES[prevId];
if(typeof prevId != 'undefined'){
$highlightCells = $('.default-highlight').removeClass('default-highlight');
rulee.forEach(function(prevId) {
$('td').filter(function() {
return $(this).data('id') === prevId;
}).next().andSelf().addClass(HIGHLIGHT)
});
}
if (rule == null)
return;
$highlightCells = $('.default-highlight').removeClass('default-highlight');
rule.forEach(function(id) {
$('td').filter(function() {
return $(this).data('id') === id;
}).next().andSelf().addClass(HIGHLIGHT)
});
});
/*END*/