【问题标题】:Custom filterable dropdown menu using AngularJS使用 AngularJS 自定义可过滤下拉菜单
【发布时间】:2015-12-19 17:01:54
【问题描述】:

我想要做的:一个自定义的可过滤下拉菜单。列表项在 input element 上获得on-focus 下拉列表。选项是可选的,单击时其文本应出现在输入字段中。当输入没有聚焦时,列表视图应该消失。

问题:列表项单击事件无法触发,因为列表视图在模糊时被删除(on-blur="bool=hide")。

演示:http://jsfiddle.net/Dreamerpro/3s5c62Lx/2/

PS:我可以使用 jquery 来解决,但是因为我正在学习 Angular,所以我想以 Angular 的方式来做,对不起我的英语:P

【问题讨论】:

    标签: javascript jquery angularjs


    【解决方案1】:

    你可以试试这个。

    而不是在模糊上分配bool = false。您可以在 setModel() 函数中执行此操作。

    http://jsfiddle.net/rzs9osob/

    编辑: 将 ng-click 替换为 ng-mousedown 并保留 ng-blur 处理程序。 更新小提琴:http://jsfiddle.net/g9p4dpdd/

    【讨论】:

    • 谢谢:D。这太容易了。
    • 您能否为@Will 所说的提供解决方案。
    • 您可以尝试 ng-mousedown 并保留 ng-blur 处理程序。查看更新的小提琴。 jsfiddle.net/g9p4dpdd@Will,不错。我没看到。
    【解决方案2】:

    @Prince,我无法在您的答案中发表评论,但您的 jsfiddle 可以工作,除非我仍将 ng-blur="bool = false" 留在其中,因此当用户单击其他地方时下拉菜单消失。

    【讨论】:

    • 是的。我其实忘了说
    【解决方案3】:

    对代码稍作修改即可获得结果。

    Working Fiddle

    说明: 您在 onblur 属性中使用了 bool = false。而是在用于设置值的方法中使用它。这样,即使在输入字段失去焦点后,列表仍然可用。

    希望对你有帮助

    【讨论】:

    • 是的,感谢您的回复,但我需要在模糊时隐藏列表项,如果单击,则将输入值设置为单击的项文本。
    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2018-09-06
    • 2015-04-02
    • 1970-01-01
    相关资源
    最近更新 更多