jQuery EasyUI menu() TypeError _391 is undefined

正在使用jQuery EasyUI做一个右键菜单功能,结果报错:TypeError: _391 is undefined

源码:

【国内直连ChatGPT 29元起】
国内直连ChatGPT,Plus会员每月29元起,支持最新o1模型探索更多领域,无需注册OpenAI账号。

$("body").append('<div id="a" class="easyui-menu" style="display:hidden;"><div>one</div><div>two</div></div>');
$("#a").menu("show",{left:100, top:100});

怎么看都没发现写的有什么问题,按照例子我又写了一个做测试

html代码

<div id="a" class="easyui-menu" style="display:hidden;">
  <div>one</div>
  <div>two</div>
</div>

js代码

$("#a").menu("show",{left:100, top:100});

居然成功了,由此我推断js动态创建的div不能被menu()?这让我有点怀疑jQuery EasyUI的特性。后来马上推翻这个想法,因为这不太可能。于是翻阅手册希望查找到是否有其它类似创建DOM节点的API,找了好久也没有!

最后还是通过自己测试,发现其实是支持js动态创建DOM点的,只不过需要先初始化一下

$("body").append('<div id="a" class="easyui-menu" style="display:hidden;"><div>one</div><div>two</div></div>');
$("#a").menu(); // 要初始化
$("#a").menu("show",{left:100, top:100});

为什么需要先初始化呢?我判断jQuery EasyUI在页面加载完毕以后会遍历所有相关的节点(通过class)并进行相应初始化,而js动态创建的节点并没有初始化就调用show自然就报错,当然只需要初始化一次以后,就可以无限次的show和hide了!

分享

TITLE: jQuery EasyUI menu() TypeError _391 is undefined

LINK: https://www.qttc.net/383-jquery-easyui-typeerror-391.html

NOTE: 原创内容,转载请注明出自琼台博客