Gwt 如何为jQuery编写JSNI

Gwt 如何为jQuery编写JSNI,gwt,jsni,Gwt,Jsni,我必须检查用户是否点击了滚动条的底部 JavaScript代码是: $(window).scroll(function() { if ($(window).scrollTop() + $(window).height() == $(document).height()) { alert("bottom!"); } }); `enter code here` // How to write this code in JSNI in GWT? I tried but

我必须检查用户是否点击了滚动条的底部

JavaScript代码是:

$(window).scroll(function() {
    if ($(window).scrollTop() + $(window).height() == $(document).height()) {
        alert("bottom!");
    }
});

`enter code here` // How to write this code in JSNI in GWT? I tried but got no result.
我用JSNI编写了上述代码,如下所示:

/*-{
    $wnd.$(window).scroll(function() {
        console.log("WS"+$wnd.$(window).scrollTop());
        $wnd.alert("hi");
    });
}-*/;

我认为这可以在普通GWT中实现,而不需要任何本机代码或jquery

一些可能有用的方法

  • Window.addWindowScrollHandler
  • Window.getScrollTop
  • Window.getClientHeight
  • Document.get().getClientHeight()文件

我认为这可以在普通GWT中实现,而不需要任何本机代码或jquery

一些可能有用的方法

  • Window.addWindowScrollHandler
  • Window.getScrollTop
  • Window.getClientHeight
  • Document.get().getClientHeight()文件

您也需要用
$wnd
替换您对
窗口的所有使用


但我同意Knarf和El Hoss的观点,即现在应该避免使用JSNI来证明未来。要么使用GWT已经提供的功能,要么使用Elemental 2,或者可能通过JsInterop而不是JSNI使用jQuery。

您还需要用
$wnd
替换对
窗口的所有使用


但我同意Knarf和El Hoss的观点,即现在应该避免使用JSNI来证明未来。要么使用GWT已经提供的,要么使用Elemental 2,或者可能通过JsInterop而不是JSNI使用jQuery。

您也可以使用GWT jQuery包装器:

您也可以使用GWT jQuery包装器:

事件处理程序工作不正常,在底部滚动时给出错误的值,但是它与我想做的相反。请检查新发布的2.8.2,它修复了Chrome中与滚动位置相关的一个bug。事件处理程序工作不正常,在底部滚动时给出了错误的值,但与我想做的相反。检查新发布的2.8.2,它修复了Chrome中与滚动位置相关的一个bug。