显示时的奇怪行为|display:none元素
strange behavior on display|display:none elements
我有一个自定义模态对话框,由一个简单的div和一些css组成。有2个按钮(OK, CANCEL)。CANCEL按钮总是相同的;它通过onclick="$('#div').css('display','none')"
隐藏了模态对话(注:这也是模态显示的方式;('display','')
)。我根据需要为OK按钮分配不同的操作。这是通过$('#okBTN').attr('onclick','my_function()')
。
它可以工作,但只有第一次 ©
我第一次打开模态并走过步骤,一切都如预期的那样工作。但是,如果我关闭模态,然后重新打开它,OK按钮上有没有动作。我的意思是,onclick被分配(正确);它在源代码中,它将通过.attr('onclick')
正确地发出警报,但是单击按钮什么也不做。我有它的设置,当模态弹出时,onclick
每次分配;但它几乎就像有一个影子副本或一些东西卡在内存或DOM中。虽然,我没有看到任何奇怪的Firebug....
我试过克隆按钮,重新分配它,然后replaceWith
'ing。我也试过remove
,并重新添加它…
什么线索吗?
朋友,我不想这么说,但是你没有充分利用jQuery的优势。
- 为什么通过CSS设置显示?只需使用。hide() .show()或。toggle()。
- 为什么要通过javascript设置onclick属性?这根本说不通。使用$ (elem) .click (my_function);
第二项可能会解决你的问题,但我会做一些认真的重新评估。
祝你好运!
使用bind
或事件名称绑定:
$('#okBTN').click(my_function)
我会尝试使用.css('display','block')
而不是.css('display','')
,因为分配一个空白的display
值似乎不像一个好主意(它可能工作,但只是为了安全)。
您是否尝试设置元素的.bind()
功能?
$('#okBTN').bind('click', my_function);
- 如何在使用jQuery应用display:none后正确显示元素
- Javascript -> CSS (display:none to display:block)
- 当display:none时,getElementById()无法获取元素
- Greasemonkey:当style=“display: none;”发生变化时如何做某事
- Pre 标记似乎忽略了样式属性(例如 display:none)
- override fadeout() display: none
- jQuery - display : none not working
- 在javascript中覆盖CSS样式“display:none”
- Javascript CSS Transitions to display:none 可以解决
- 通过jQuery将DISPLAY:NONE添加到span,当:鼠标单击span外部,或单击EXIT按钮,等等+
- slideDown() 在 css 设置为 display:none 时不起作用
- 设置 style.display= none 后优雅的 javascript 重新调整
- 如何使用属性 display:none 测量类的长度
- JS监视CSS属性的变化,如“display:none”=>“display:block”
- jQuery show element with display:none !important
- 如何将“display:none”与jquery或javascript一起使用
- 为什么javascript读取具有display:none的元素
- Javascript/Jquery alternative to "display:none"?
- 设置 style
- 标记时不显示.display = none
- element.style.display='none' 不起作用