java - Jquery到Java方法调用问题

标签 java jquery javafx

我有一个 jquery 函数,它调用下面定义的 java 方法。

JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("clickController", new RecordProcessor());
executejQuery( webEngine, new String(Files.readAllBytes(Paths.get("record.js"))));

webEngine 是一个 JavaFX Web 引擎,用于加载某些网站。

RecordProcessor如下:

public class RecordProcessor {
    public void process(Object object, String returnValue, String action) {
            System.out.println(action);
    }
}

现在在我的 record.js 中,我有一个像这样的 jquery 函数:

$(document).ready(function(){
    $('*').click(function(event) {
        clickController.process(event.target, "someString", "click");
    });
}

clickController 是用于访问 RecordProcessor 的 process 方法的句柄。

问题是,当我单击网页中的某个元素时,process 方法会被多次调用。我不知道为什么。谁能解释一下发生了什么事吗?另外,可能的解决方案? 例如,“click”在控制台中多次打印,并且数量不是恒定的。每次执行时,它都会打印不同的次数。

最佳答案

问题出在这一行:

$('*').click(function(event) { ...

* 告诉 jQuery 将“点击”绑定(bind)到页面上的每个元素。 DOM 是分层的,默认情况下事件将传播到 DOM 上的所有元素。

<小时/>

您是否考虑过绑定(bind)到文档

$(document).click(function(event) { ...

关于java - Jquery到Java方法调用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31153675/

相关文章:

java - 无法通过Java代码运行bat文件

javascript - 获取具有特定属性的 xml 文本

javascript - JQuery:如何获取以相同 ID 字符开头的多个元素的特定属性类型计数?

javascript - 将数据传递给 Bootstrap 模式

具有不同名称的 JavaFX 2 类具有相同的 css 代码

java - 除了framework和java语法,还有什么是必须要掌握的?

java - 如何将 gradle 多项目存储库作为 git 子模块包含在另一个 gradle 项目中

java - 无法从 java jar 运行 python 脚本

java - OpenCV Java [警告 :2] videoio(MSMF): can't grab frame. 错误:-1072875772

Java 改变游标