【问题标题】:Make div container clickable, except export button使 div 容器可点击,导出按钮除外
【发布时间】:2015-07-08 21:26:21
【问题描述】:

我想创建一个整个 div 具有 onclick 函数的 Highcharts 图表,但我不希望导出按钮处理点击事件。它应该只是作为普通的导出按钮做出反应。

我已经尝试了一些 jQuery 技巧来避免它,通过获取 Highcharts 按钮类:highcharts-button,但它不起作用:

jQuery("#container").on('click', ':not(.highcharts-button, .highcharts-button *)', function(e){
        e.stopPropagation();
        alert('CLICK');
    });

这是我的JSFiddle。 (问题是:我不想在单击导出按钮时看到弹出警报)。

【问题讨论】:

  • 完全没有得到你,你能解释一下更好的方法吗
  • @PranayRana 对不起。我希望我的图表可以点击。此单击会创建一个警报框。但是当我单击 ExportButton(创建图表时的 Highcharts 默认按钮)时,我不希望出现此警报框。是不是更清楚了?

标签: jquery highcharts onclick


【解决方案1】:

一种方法是过滤事件目标,例如:

jQuery("#container").on('click', function(e){      
    if ($(e.target).closest('.highcharts-button, .highcharts-contextmenu').length) return;
    e.stopPropagation();
    alert('CLICK');
});

-jsFiddle-

【讨论】:

  • 哦,它有效,但仅适用于第一次点击。当我单击其中一个菜单项时,将处理该事件。我应该使用.highcharts-button * 之类的东西吗?
  • 谢谢。这正是我所需要的。不错!
【解决方案2】:

使用event.preventDefault()。在你的情况下 e.preventDefault()

jQuery("#container").on('click', ':not(.highcharts-button, .highcharts-button *)', function(e){
    e.preventDefault();
    alert('CLICK');
});

【讨论】:

  • 不,它不起作用。您以前尝试过 JSFiddle 吗?请参阅:jsfiddle.net/t61e2z5o/3
  • 不,我没有。对不起,没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-08
  • 2018-03-07
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多