注意这两个函数是相同的,只是名称不同:
以下片段位于
abc.js
:
function displayConfirmCreateDestinationOrOriginModal() {
$('[id$=a]').css('display', 'block');
}
function toggleConfirmCreateDestinationOrOriginModal() {
$('[id$=a]').css('display', 'block'); // I realise this is not toggling functionality, but that's not in question here/yet
}
以下片段均在
def.aspx
中:
<script type="text/javascript" src="abc.js"></script>
不起作用:
<button
id="a"
type="button"
onclick="toggleConfirmCreateDestinationOrOriginModal()">Create New</button>
有效:
<button
id="a"
type="button"
onclick="displayConfirmCreateDestinationOrOriginModal()">Create New</button>
同样,如果我使用 asp:Button,同样的问题
不起作用:
<asp:Button
id="a"
type="button"
text="Create New"
runat="server"
onclick="toggleConfirmCreateDestinationOrOriginModal()" />
有效:
<asp:Button
id="a"
type="button"
text="Create New"
runat="server"
onclick="displayConfirmCreateDestinationOrOriginModal()" />
JavaScript 代码应该在两种情况下运行,从而进行模态显示。
我什至在每次尝试之前都进行了清理和重建。
我添加了所有这些代码,因此问题与其他内容无关:这都是新代码,只有 display* 方法有效。这种行为让我问:toggle* 是 JavaScript 或 asp 中的特殊词吗?
我对asp很陌生,想了解发生了什么,因为这种错误可能会导致我将来浪费很多时间,如果此类错误是出于我不明白的原因。
在使用类似的代码遇到类似的问题后,我怀疑这与 JavaScript 的缓存方式有关。我执行了清空缓存和硬刷新(在 Edge 中)。看来问题已经解决了。