传递一个VBscript函数作为jQuery click()函数的参数
Pass a VBscript function as an argument to the jQuery click() function
我正在创作一些HTML文件,这些文件将由嵌入到第三方应用程序中的IE控件呈现。
为了以最少的麻烦提供一些相当复杂的UI元素,我选择使用jQuery在JavaScript中编写大部分代码。这通常工作得很好,但是主机应用程序提供了一个大型的支持函数库,我需要调用它来触发某些操作(例如打印和数据库更新)。这些支持功能都在外部VBScript (.vbs
)文件,我可以包括在HTML文件的头。
调用VBscript函数并从我的JavaScript函数中访问全局变量,当直接完成时工作完美无缺,但我不知道如何将对VBscript中定义的函数的引用传递给jQuery事件处理程序。
例如:
1: <script type="text/vbscript">
2: Function handleClick
3: MsgBox "Clicked."
4: End Function
5: </script>
6:
7: <script type="text/javascript">
8: $(function () {
9: $("#clickableThing1").click(handleClick);
10: });
11: </script>
…在第9行生成以下错误:
"对象不支持此属性或方法"
用下面的代码替换第9行就可以了:
$("#clickableThing1").click(function() {
handleClick();
});
我已经尝试将handleClick
传递给click()
作为document.handleClick
和this.handleClick
,但无济于事。
虽然我可以继续在匿名JavaScript函数中包装VBScript调用,但这似乎不必要的冗长,当然这些函数必须在DOM 某处中定义,对吧?
有没有人能告诉我如何直接引用那些VBScript函数?
我不确定你可以。我想如果你尝试,VBScript函数只是要得到评估的地方,它的返回值将被传递到click()
。
attr()
函数为DOM元素分配一个内联处理程序。根据我的经验,当使用VBScript函数作为事件处理程序时,您需要使用父元素或来指定它们,并在DOM元素上包含language="vbscript"
属性。
<script type="text/javascript">
$(function() {
// This should work (using parens)...
$("#clickableThing1").attr("onclick", "handleClick()");
// or, so should this (no parens on function call)...
$("#clickableThing1").attr("language", "vbscript").attr("onclick", "handleClick");
});
</script>
相关文章:
- 执行ajax成功函数-jQUERY
- 函数jquery.html()不提供数据属性集值
- 将变量放入ajax函数JQuery
- 函数jquery的未定义返回
- 如何在嵌套函数jquery上保持变量的值不变
- 用我的函数jquery给出数据/参数
- Firefox在调用函数(jquery)时冻结
- 在传递节时触发一个函数 - jquery
- 循环执行数组函数jQuery
- 在函数中调用另一个函数JQuery
- 对象不是函数-Jquery/JavaScript
- TypeError:对象不是函数-jquery
- 获取函数jQuery设置的属性
- 从函数jquery获取更新的变量值
- 切换而不是悬停函数jQuery
- 函数jQuery.animation()运行了两次行,但不起作用
- 使用函数 jQuery 获取变量
- 自执行函数 jquery 与 JavaScript 的区别
- 从回调函数 -JQuery 获取返回值
- 一个接一个地执行函数 JQUERY