在GWT JSNI中调用JCrop
Calling JCrop in GWT JSNI
我正在尝试进行等效于此JavaScript代码片段的JSNI调用:
jQuery(function($) {
$('#target').Jcrop();
});
我相信我已经正确导入了库,但我似乎无法从 JSNI 调用此函数时获得正确的语法。使用以下方法时:
public static final native void initializeJCrop() /*-{
$wnd.jQuery(function($) {
$('#target').Jcrop();
});
}-*/;
引发以下异常:
原因:com.google.gwt.core.client.JavaScriptException: (类型错误(: $("#target"(。Jcrop不是一个函数
我该如何解决这个问题?
使用 JSNI 调用外部函数的语法与简单的 JavaScript 略有不同。
您必须提供完整的包/类引用以及被调用函数的参数类型/类(由于您的参数没有任何参数,因此不必担心(尝试更改调用以包含定义 JCrop 的包和类。假设定义JCrop的类的位置是"api.jcrop">
那么你的电话必须是
@api.jcrop::JCrop()()
而不是 JCrop((
当然,包名称是假设的,您必须检查包含定义的类的正确位置。
符号 @ 是必需的。 jcrop是包含定义的类,JCrop((是函数本身。
JCrop 之后的第一个参数表示函数的参数类型,而第二个参数提供传递参数的值。正如我所说,在你的情况下两者都是空的。
如果您有兴趣,可以在此处阅读有关参数的更多信息
希望这能解决您的问题
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 在GWT JSNI中调用JCrop