jQuery Maphilight。在突出显示新之前切换alwaysOn

Posted

技术标签:

【中文标题】jQuery Maphilight。在突出显示新之前切换alwaysOn【英文标题】:jQuery Maphilight. Toggle alwaysOn before highlighting new one 【发布时间】:2014-04-18 09:26:50 【问题描述】:

将鼠标悬停在新区域或选择新区域时关闭选定区域。

我正在使用 jQuery Maphilight 来突出显示地图上的选定区域。我已经成功添加了一个点击状态,所以当用户点击它时,地图的区域仍然是高亮的。但是当他们点击第二个和第三个区域时,第一个区域仍然突出显示,这是我不想要的。

如何切换此 alwaysOn 属性以关闭所有元素。我似乎无法弄清楚。

谢谢。

.bind('click.maphilight', function(e)      
    e.preventDefault();
    var data = $(this).mouseout().data('maphilight') || ;
    data.alwaysOn = !data.alwaysOn;
    $(this).data('maphilight', data).trigger('alwaysOn.maphilight');
)

【问题讨论】:

【参考方案1】:

最好以供将来参考。

// Turn off all
$("area").data('maphilight',  alwaysOn: false ).trigger('alwaysOn.maphilight');

// Turn on one
$("area[data-id=" + id + "]").data('maphilight', alwaysOn: true).trigger('alwaysOn.maphilight');

【讨论】:

【参考方案2】:

找到可能对我有用的解决方案:

.bind('click.maphilight', function(e)      
                    $(this).data('maphilight',  
                          alwaysOn: true 
                    ).trigger('alwaysOn.maphilight');
                    //check if area wasnt already selected - otherwise gets buggy
                    if( !$(this).hasClass('selected') ) 
                      $('.selected').data('maphilight', 
                          alwaysOn: false
                      ).trigger('alwaysOn.maphilight');
                      $('#map-tag area').removeClass('selected');
                      $(this).addClass('selected');
                    
                )

【讨论】:

它有点马车,虽然

以上是关于jQuery Maphilight。在突出显示新之前切换alwaysOn的主要内容,如果未能解决你的问题,请参考以下文章

如何单击以使用 jQuery maphilight 更改突出显示颜色

带有 maphilight 的 Jquery Cycle 插件停止工作

Jquery Maphilight 打印问题

使用 .maphilight() 突出显示图像的特定区域

带有弹出窗口的 Maphilight jQuery

jQuery maphilight 通过单击将区域设置为 alwaysOn