【发布时间】:2016-02-22 22:59:14
【问题描述】:
我遇到了关于使用回调函数的 javascript 方法的问题。 我有一个 jsp,我在其中定义了要调用的回调函数。
<c:set var="callbackMethod" value="dispatchRFQDocument.loadDocumentGroup" scope="request"/>
然后从下一个 JSP 如果我从 onClick 调用该回调,一切都会像魅力一样工作。
<a id="documentComponentLinkId"
href="javascript:void(0);" onclick="documentDialog.openDocumentsDialog(${callbackMethod})">
<i id="documentsDialog" class="fa fa-folder-open-o">
<spring:message code="label.procurement.stopProcedure.documents"/>
</i>
</a>
但是,我不想使用 onClick 事件,而是想在我的 Javascript 上绑定事件并在那里调用回调。回调方法不能再被调用,因为它是一个字面量。
在我的 JSP 中
<script>
var callbackMethod = "${callbackMethod}";
</script>
在 Javascript 中
var initListener = function () {
$('#documentComponentLinkId').click(function () {
documentDialog.openDocumentsDialog(callbackMethod);
});
};
有什么建议吗?
问候。
【问题讨论】:
-
只是为了测试,写一个
alert(dispatchRFQDocument.loadDocumentGroup);来确保你的方法存在,然后再传递给init监听器。 -
我做了并且 alert(callbackMethod) return "dispatchRFQDocument.loadDocumentGroup" 问题是,当我声明为变量时不再是一个函数
-
保罗,你不懂。暂时忘记 JS 变量,因为这只是一个字符串。为了让这个东西最终工作
dispatchRFQDocument.loadDocumentGroup必须存在(不是作为字符串,而是)作为 JS 函数对象。所以,当我问你alert(dispatchRFQDocument.loadDocumentGroup);时,我的意思是准确地写出来,因为似乎该函数不存在并且会输出[undefined]。你需要先解决这个问题。
标签: java javascript jquery jsp