javascript - 未捕获的类型错误:无法读取未定义的属性“stopPropagation”以修改下拉列表
问题描述
我已经修改了 bootstrap 的下拉菜单,使其成为一个小的菜单类型表单。
因为默认情况下,当您单击下拉菜单时,它会消失。所以我使用了 e.stopPropagation() 来防止它隐藏。
它在几个地方对我来说都很好,除了一个代码完全相同的地方。
edit_charges = '<button type="button" data-toggle="dropdown" style="border:none;background:none;outline:none;cursor:pointer;float:right">' \
'<i class="fa fa-pen"></i>' \
'<ul class="dropdown-menu dropdown-menu-extra">' \
'<label>Extra Charges</label>' \
'<input type="number" min="0" class="form-control form-control-sm extra_charges" placeholder="Amount" style="margin-bottom:5px" />' \
'<input type="button" class="btn btn-primary btn-sm btn-block" onclick="edit_extra_charges($(this))" value="Save"/>' \
'</ul>' \
'</button>'
并处理它。
$('.dropdown-menu-extra').on('click', function (e) {
e.stopPropagation();
});
$('.dropdown-menu-extra').on('keyup', function (e) {
if (e.keyCode == 32) {
e.preventDefault();
e.stopPropagation();
}
});
我的菜单看起来像这样。
现在,当我单击您的下拉列表时,它并没有消失,这是正确的,这意味着e.stopPropagation();
工作正常,但是当我单击保存按钮时,它向我显示此错误:
PS:在几个地方使用相同的设置代码可以正常工作。
谢谢!
解决方案
推荐阅读
- javascript - 为什么 bigInt 在计算时会给出不同的结果。pow() (使用 npm 大整数)?如何解密给定的数字?
- angular2-template - 如何在 click Handler 函数上调用 AG-Grid 的 gridready 事件
- python - 熊猫之前设置并使用新的行值
- java - Android-如何处理选择的图像?
- git - 什么是针对特定提交对单个未提交文件进行 git diff 的可靠方法?
- git - 模拟预提交挂钩 Bitbucket Cloud
- html - 引导表分页下拉菜单不起作用 - Rails
- windows - 为什么火花流的小批量在 Windows 上更持久?
- xml - 将 XML 数据从基于 Web 的源导入 Google 表格
- r - 检查函数中的字符条目是否在 R 中的向量集中