[英]Calling jquery from GWT JSNI
我是一個具有零jquery經驗的GWT人。 對於那個很抱歉。 不幸的是,我遇到了一些必須在我的GWT項目中使用的jquery功能。
<script type="text/javascript">
$(document).ready(function() {
zingchart.render({
'id' : 'g1',
'width' : 500,
'height' : 400,
'dataurl' : 'scatter_minimal.txt'
});
});
</script>
<div class="g" id="g1"></div>
憑直覺,我將相信
$(document).ready( ..)
應該翻譯為GWT的onModuleLoad(){ ....}
,如果我在onModuleLoad中調用該函數,則onModuleLoad將確保DOM准備就緒。
但我認為以下內容無效。
private static native void render() /*-{
function() {
zingchart.render(
{
'id' : 'g1',
'width' : 500,
'height' : 400,
'dataurl' : 'scatter_minimal.txt'
}
);
}
}-*/;
如何編碼JSNI來定義可以從GWT調用的函數?
如果我正確理解了您的問題,那么您要做的就是:
private static native void render() /*-{
zingchart.render(
{
'id' : 'g1',
'width' : 500,
'height' : 400,
'dataurl' : 'scatter_minimal.txt'
}
);
}-*/;
然后,您可以從GWT代碼中調用render()
。 render
是函數本身,當您使用JSNI語法時,GWT已經為您定義了它作為JavaScript函數。
背景 :
編寫function() {...}
定義了一個匿名函數-這不是您想要的(您將無法引用它,因為您不會在任何地方傳遞它)。 在jQuery中,您可以將該匿名函數直接傳遞給document.ready()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.