簡體   English   中英

從GWT JSNI調用jquery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM