我正在使用 jQuery v1.8.3 和 jQuery UI v1.9.2。
在 aclick
上,button
我希望菜单(通过 a ul
)在打开时隐藏,或者在关闭时显示,所以我选择以最基本的形式使用切换click
功能, on ,toggle()
。就这么简单,例如
button.click =>
autocomplete = input_field.data("ui-autocomplete")
menu = autocomplete.menu
ul = menu.element
ul.toggle()
(这是咖啡脚本,但你明白了要点)
实际发生的是,当第ul
一次显示(而不是通过按钮)时,它的display 属性设置为 display 属性display: block
。
然后,如果我在单击功能中检查显示属性的当前状态,则在第一次单击按钮时:
console.log "display = #{ul.css('display')}"
ul.toggle()
console.log "display = #{ul.css('display')}"
输出是:
显示 = 无
显示 = 块
因此,由于某种原因,该物业最初被错误地拾取。
它将显示属性添加为display: block
,然后在下一次单击时设置display: none
。
我无法直接控制它,因为它是由自动完成小部件ul
呈现的,我并不热衷于摆弄它。
这是预期的行为,解决此问题的最佳方法是什么?我正在考虑传递一个函数来click
检查是否有显示属性集,然后根据它显示或隐藏,但如果有更简单的方法或更好的功能,也许是更新版本的切换,那么请告诉我。在我看来,jQuery 文档是所有技术项目中最糟糕的,所以我认为我很可能完全使用了错误的功能。
任何帮助深表感谢。