तीन इस प्रश्न के लिए समाधान का सुझाव दे रहा हूँ:
1- आपका Jsni कोड को छोड़कर आप इसी में यह संलग्न करने के लिए है कि ठीक लग रहा है मूल कार्य और एक डबल (या कोई अन्य नंबर प्रकार लौटाएं यदि आप कास्टिंग बनाने के लिए चाहते हैं)।
native double getTop(String profileId) /*-{
return $wnd.$("#" + profileId).offset().top;
}-*/;
आप के माध्यम से त्रुटियों देखना चाहता था, तो आपके UncaughExceptionHandler
आप के बजाय jQuery का उपयोग कर के, एक $entry
ब्लॉक
native double getTop(String profileId) /*-{
return $entry(function(data) {
return $wnd.$("#" + profileId).offset().top;
});
}-*/;
2- में अपने कोड लपेट लेकिन चाहिए, मैं तुम्हें gwt-query उर्फ gQuery उपयोग करने के लिए प्रोत्साहित करते हैं। तो आपको अपने .html में jQuery लोड नहीं करना होगा और आपको अपने ऐप में jsni से निपटने की आवश्यकता नहीं है।
gQquery के साथ आपके पास लगभग एक ही jQuery वाक्यविन्यास है लेकिन जावा में, इसलिए आपके पास सुरक्षित, रिफैक्टरिंग, परीक्षण टाइप है .... लेकिन साथ ही, आपके पास दर्जनों उपयोगिताओं (सरल AJAX, वादे, चयनकर्ता, आदि) होंगे जीडटी कोर में नहीं हैं।
gQuery एक हल्के वजन वाली लाइब्रेरी है, जो पूरी तरह से gwt में स्क्रैच से पुनः लिखा गया है। यह jQuery लाइब्रेरी का एक रैपर नहीं है (जैसा कि दूसरे जवाब में गलत तरीके से कहा गया है), आपको अपने पृष्ठों में jquery.js को शामिल करने की आवश्यकता नहीं है।
किसी भी अन्य जीडब्ल्यूटी लाइब्रेरी की तरह, gwt कंपाइलर किसी भी चीज़ से छुटकारा पाता है जिसे आप gquery से उपयोग नहीं करते हैं। आपके दृष्टिकोण में, आपके ऐप को सभी jquery सामान लोड करना होगा।
अपने मामले में
तो, और gquery अपने जावा कक्षाओं में इस कोड लिखने का उपयोग कर: अंत में
import static com.google.gwt.query.client.GQuery.*;
... onModuleLoad() {
int top = $("#"+profileId).offset().top;
}
3-, आप शुद्ध gwt कोड का उपयोग कर पाने के लिए एक तत्व की भरपाई करने का विकल्प है, अगर आप इसकी आईडी जानते हैं:
int top = DOM.getElementById(profileId).getOffsetTop();
आपकी जेएसनी विधि (रिटर्न टाइप, पैरामीटर इत्यादि) का पूरा कोड क्या है? क्या आप अपने index.html में jquery.js लोड कर रहे हैं? क्या आपका कोड निष्पादित होने पर आपको कोई त्रुटि मिलती है? –