0

我正面临这个问题:

<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=' ';">
      &nbsp;Order&nbsp;
  </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=' ';">
      &nbsp;Refresh&nbsp;
   </a>
</p>

我需要更改ORDER按钮的功能。它应该在事件生成之前触发REFRESH(生成事件)功能。SC_REFRESHSC_ORDER

onlick这意味着我需要在按钮上触发两个事件ORDER- 先是REFRESH,然后是ORDER。两个事件之间有 2 秒的休息时间。的功能REFRESH不会改变。

4

3 回答 3

2

一个)。2秒延迟的原因是什么?这是非常可疑的...

乙)。任何给定的方法都应该很好地完成一件事。在该方法中为 REFRESH 和 ORDER 创建不同的功能向我表明,您确实有两个方法应该分为两个(可能都称为公共的第三个函数),但是我又一次难以想象您为什么想要在发布之前刷新表单。

C)。如果你真的需要这个,你可以最好在新划分的方法本身中引入一个带有setTimeout的计时器,但是如果你继续现有的实现,那么我猜是 onclick 属性本身,尽管现在它变得混乱(呃)。你会写这样的东西:

onclick="SetOkCodeButton('=SC_REFRESH', 'BBPForm', '', '',''); setTimeout(function(){SetOkCodeButton('=SC_ORDER', 'BBPForm', '', '','');},2000);"

请注意,尽管 setTimeout 是异步的 - 如果您想要一个真正的 wait() 方法,您需要自己编写一个(这些处理器很昂贵),但它们很昂贵,我再次怀疑您是否真的需要它。

D)。return false 也令人深感怀疑……

E)。鼠标悬停和鼠标悬停也是如此,这是自动生成的代码吗?

于 2009-03-23T11:28:48.707 回答
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>

如果这些函数是同步的,这应该没问题,如果它们是异步的,你可能需要一个回调。

于 2009-03-23T12:10:52.630 回答
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

于 2009-03-23T14:20:06.953 回答