【问题标题】:jquery contextMenu hide/show event not being triggeredjquery contextMenu隐藏/显示事件未被触发
【发布时间】:2017-01-27 21:07:28
【问题描述】:

除非我在方法中放置一个 alert() 或者我在函数内的 Chrome 开发者工具中有一个断点,否则不会触发我的显示和隐藏事件。

我不想显示警报。我能错过什么? 谢谢!

这是我的 JQuery contextMenu 对象(带有警报功能):

$.contextMenu({
            selector: 'circle',
            trigger: 'left',
            events: {
                show: function(options) {
                    contextMenuIsOpen = true;
                    if ($("#GraphType option:selected").text() == "Line")
                        chart = "#chart";

                    $(chart).data("kendoChart").options.tooltip.visible = false;
                    alert("Show Context Menu");
                },
                hide: function (options) {
                    contextMenuIsOpen = false;
                    $(chart).data("kendo-chart").options.tooltip.visible = true;
                    alert("Hide Context Menu");
                }
            },
            build: function () {
                return buildMenu();
            }
        });

【问题讨论】:

  • 您需要什么信息?该链接对我和您都没有帮助,因为我不知道我还需要添加什么以使我的问题更有意义。
  • 这是否包含在加载回调中($.ready()$() ...)?
  • 如果您看到这些警报,那么当您取出它们时,几乎可以肯定这些功能仍在触发。为什么你认为他们不是?您是否检查过控制台的错误、断点并单步执行代码以检查它是否按预期工作?你只需要做更多的调试来确定问题到底是什么。您问题中提供的代码不足以让我们重新创建问题,因此很难为您提供帮助(我相信 Chris G 在他的评论中暗示了这一点)。
  • 没错。将一个 jsfiddle 放在一起或为您的问题添加一个工作示例。就目前而言,我们只能猜测问题所在。警报都在函数的末尾,因此它们出现的事实将指向正在运行的函数。就像@NigelK 说的,做一些基本的故障排除。对于初学者,将 alert() 调用替换为 console.log() 是否仍然有效?

标签: javascript jquery kendo-ui contextmenu


【解决方案1】:

感谢 ChrisG、ibrahim mahrir 和 NigelK 的建议,我能够弄清楚这不是 jQuery contextMenu 问题,而是剑道图表问题。

我没有使用$(chart).data("kendo-chart").options.tooltip.visible 将工具提示可见性设置为真或假,而是使用$(chart).data("kendo-chart").setOptions({ tooltip: { visible: false } } );

我希望这个答案可以帮助任何遇到这个问题的人。

非常感谢您的帮助。 StackOverflow 拥有最优秀的人才!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多