如何使onclick事件在onblur之前发生?

4

我有两个元素,一个带有onclick = "..."的锚点和一个带有onfocus = "..."的输入框。当按钮处于焦点状态时,锚点会切换显示,当失去焦点时,锚点会隐藏。有没有一种方法可以在onblur事件发生之前就访问锚点的onclick事件?

input(type="radio", name="sample", value=str(sample['id']),
     id="S"+str(sample['id']),onfocus = 'javascript:toggleVisibility("%stoggle");' 
     % sample['id'], onblur = 'toggleVisibility("%stoggle");' % sample['id'])

a("edit", id = "%stoggle" % str(sample['id']), style="display:none; float:right;
   padding-left:10px; text-decoration:none;", href='do something')

访问是什么意思?您想触发onClick事件还是只是获取函数?您需要它做什么?也许有更好的解决方案... - Gatekeeper
我只想能够更改与单选按钮显示的值。现在,href地址或代码不会执行,因为onblur发生在href触发之前。有没有快速的方法可以让它发生? - atfergus
现在它能工作了吗?还是仍然存在问题? - WolvDev
1个回答

5
尝试使用onmousedown而不是onclick

1
似乎 onblur 事件仍然首先发生。 - atfergus
1
使用setTimeout调用一个函数怎么样?这样,在失去焦点后,需要大约500毫秒才能执行toggleVisiblity(为了代码示例,我需要知道您的toggleVisiblity代码)。 - WolvDev
setTimeout函数可行。我之前尝试过,但是参数使用的是0.5而不是500。谢谢大家。 - atfergus
没问题 :) 是的,setTimeout和setInterval需要以毫秒为参数。 - WolvDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接