我正面临这个问题:
<p class="pushButton">
<a href="javascript:return;"
onclick="SetOkCodeButton('=SC_ORDER', 'BBPForm', '', '','');
return false;" name="Order" class="pushButton"
title="Orders your shopping cart. This completes the operation "
onmouseover="status=' ';return true;" onmouseout="status=' ';">
Order
</a>
</p>
<p class="pushButton">
<a href="javascript:return;"
onclick="SetOkCodeButton('=SC_REFRESH', 'BBPForm', '', '','');
return false;" name="Refresh" class="pushButton"
title="Updates all details according to your changes. "
onmouseover="status=' ';return true;" onmouseout="status=' ';">
Refresh
</a>
</p>
我需要更改ORDER
按钮的功能。它应该在生成REFRESH
事件之前触发SC_REFRESH
(生成SC_ORDER
事件)功能。
这意味着我需要在ORDER
按钮上点击一个触发两个事件 - 首先是REFRESH
,然后是ORDER
。两个事件之间有2秒的休息时间。
REFRESH
的功能不会改变。
答案 0 :(得分:2)
A)。延迟2秒的原因是什么?这非常可疑......
B)。任何给定的方法都应该完成一件事。在方法中为REFRESH和ORDER创建不同的功能告诉我你真的有两个方法应该分成两个(可能都叫一个共同的第三个函数),但是我再次想象你为什么要这么做在发布之前刷新表单。
C)。如果你真的需要这个,你可以将setTimeout的计时器最好引入新划分的方法本身,但是如果你继续现有的实现,那么我想在onclick属性本身,虽然现在它变得混乱(呃)。你会写这样的东西:
onclick="SetOkCodeButton('=SC_REFRESH', 'BBPForm', '', '',''); setTimeout(function(){SetOkCodeButton('=SC_ORDER', 'BBPForm', '', '','');},2000);"
请注意,虽然setTimeout是异步的 - 如果你想要一个真正的wait()方法,你需要自己编写一个(这些处理器价格昂贵),但它们很昂贵,我再次怀疑你真的需要它。 / p>
d)。返回虚假也是非常可疑的......
E)。与mouseout一样,这是自动生成的代码吗?
答案 1 :(得分:1)
任何原因都不起作用?
<p class="pushButton">
<a href="javascript:return;"
onclick="SetOkCodeButton('=SC_REFRESH', 'BBPForm', '', '','');SetOkCodeButton('=SC_ORDER', 'BBPForm', '', '','');
return false;" name="Refresh" class="pushButton"
title="Updates all details according to your changes. "
onmouseover="status=' ';return true;" onmouseout="status=' ';">
Refresh
</a>
</p>
如果这些函数是同步的,这应该没问题,如果它们是异步的,你可能需要回调。
答案 2 :(得分:0)
我刚刚发现这里列出的代码是由SAP的这个模板生成的。 我是新手。 :-) 任何人都可以看到有机会触发2个事件(SC_REFRESH和SC_ORDER)而不只是一个(SC_ORDER)?
TR()
TD()
BBPVSpace()
BBPButtonBegin()
if (BTN_SC_ORDER.exists)
if (BTN_SC_ORDER.disabled)
BBPDisabledButton(BTN_SC_ORDER.label)
BBPButtonSpace()
else
BBPButton(BTN_SC_ORDER.OKCODE,BTN_SC_ORDER.label, tooltip=#BUTTON_ORDER)
BBPButtonSpace()
end
end
if (BTN_SC_REFRESH.exists)
if (BTN_SC_REFRESH.disabled)
BBPDisabledButton(BTN_SC_REFRESH.label)
BBPButtonSpace()
else
BBPButton(BTN_SC_REFRESH.OKCODE,BTN_SC_REFRESH.label,tooltip=#BUTTON_ACTUAL)
BBPButtonSpace()
end
end