Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有自定义事件对象的触发器事件处理程序_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript 具有自定义事件对象的触发器事件处理程序

Javascript 具有自定义事件对象的触发器事件处理程序,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,是否可以使用自定义事件对象在某个对象上触发事件? i、 e 一点背景: 在我的例子中,Element2是Element1的一个几乎相同的克隆,但位置不同。单击Element2时,该单击应转发给Element1 我已经有代码根据单击了Element2的哪个子元素来标识Element1的正确子元素,但是元素1的子元素上的click事件处理程序要求正确设置pageX和pageY属性。click()完全忽略这些属性 在我的示例中,由于target属性设置不正确,所以只进行深度克隆并包含事件处理程序是不够

是否可以使用自定义事件对象在某个对象上触发事件? i、 e

一点背景:

在我的例子中,Element2是Element1的一个几乎相同的克隆,但位置不同。单击Element2时,该单击应转发给Element1

我已经有代码根据单击了Element2的哪个子元素来标识Element1的正确子元素,但是元素1的子元素上的click事件处理程序要求正确设置pageX和pageY属性。click()完全忽略这些属性

在我的示例中,由于target属性设置不正确,所以只进行深度克隆并包含事件处理程序是不够的

我的实例中的一个解决方法是,克隆元素保留对原始元素(以及每个子元素)的引用,处理程序检查该引用,但是,我更喜欢处理程序不知道克隆过程的解决方案,尤其是因为有很多处理程序要修改

您可以尝试使用它,它接受一个事件对象作为参数

$('#Element1').trigger(event);

演示:

我不太了解您的背景逻辑,但您可以尝试使用jQuery中的
触发器。您可以使用事件对象触发事件:

$('#Element1').click(function(event){
    console.log('Element1 clicked with changed event: ' + event.something);
});

$('#Element2').click(function(event){ 

    event.something = "Something";

    $('#Element1').trigger(event);
});

我应该正确阅读文档-我没有发现触发器函数的第二个过载。
$('#Element1').click(function(event){
    console.log('Element1 clicked with changed event: ' + event.something);
});

$('#Element2').click(function(event){ 

    event.something = "Something";

    $('#Element1').trigger(event);
});