首页 > 解决方案 > 未捕获的类型错误:无法读取未定义的属性“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:在几个地方使用相同的设置代码可以正常工作。

谢谢!

标签: javascriptpythonjquerydropdown

解决方案


推荐阅读