我有一个自定义模式对话,由一个简单的div和一些CSS组成。有2个按钮(OK,CANCEL)按钮。 CANCEL按钮始终相同;它通过onclick="$('#div').css('display','none')"
隐藏模态对话(注意:这也是模态显示的方式; ('display','')
)。我根据需要为OK按钮分配不同的操作。这是通过$('#okBTN').attr('onclick','my_function()')
完成的。
它有效,但只是第一次©
我第一次打开模态并完成步骤时,一切都按预期工作。但是,如果我关闭模态,然后重新打开它,则“确定”按钮会对其执行无操作。我的意思是,onclick被分配(正确);它位于源代码中,它将通过.attr('onclick')
正确提醒,但单击该按钮不会执行任何操作。我设置了当弹出模态时,每次都会分配onclick
;但它几乎就像有一个影子副本或某些东西卡在内存或DOM中。虽然,我在Firebug中看不出任何奇怪的东西......
我尝试克隆按钮,重新分配按钮,然后replaceWith
。我也试过remove
'并重新添加它......
任何线索?
答案 0 :(得分:2)
讨厌说我的朋友,但你没有利用jQuery的好处。
第二个子弹可能会解决您的问题,但我会做一些严肃的重新评估。
祝你好运!答案 1 :(得分:0)
使用bind
或事件名称绑定器:
$('#okBTN').click(my_function)
答案 2 :(得分:0)
我尝试使用.css('display','block')
代替.css('display','')
,因为分配空白display
值似乎不是一个好主意(它可能有用,但只是为了安全)
您是否尝试过设置元素的.bind()
功能?
$('#okBTN').bind('click', my_function);