Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 停止对特定嵌套元素触发click.trigger()_Javascript_Aurelia - Fatal编程技术网

Javascript 停止对特定嵌套元素触发click.trigger()

Javascript 停止对特定嵌套元素触发click.trigger(),javascript,aurelia,Javascript,Aurelia,我正在尝试使用click.tigger()将模板的模式更改为可编辑。问题是此模板中有一个图像库,我不希望单击.trigger启动它 app.js: <div click.trigger="enableEdit()"> <response containerless></response> </div> 一旦我点击触发器,它就会工作并启用编辑。画廊正在使用一个名为Flickity的插件。上面我展示了我是如何实例化它的 考虑将click绑定放

我正在尝试使用click.tigger()将模板的模式更改为可编辑。问题是此模板中有一个图像库,我不希望单击.trigger启动它

app.js:

<div click.trigger="enableEdit()">
    <response containerless></response>
</div>

一旦我点击触发器,它就会工作并启用编辑。画廊正在使用一个名为Flickity的插件。上面我展示了我是如何实例化它的

考虑将click绑定放在同级元素上。避免阻止事件冒泡,因为它会使代码变得脆弱/不可移植

快速修复方法是检查单击事件的。找出单击是源于您的
元素还是它的子元素之一


启用编辑(目标){
if(target.nodeName=='gallery'| | target.nestest('gallery')!==null){
//这是画廊的元素或它的孩子…离开这里。。。
返回;
}
...
}

注意:尚未在Internet Explorer中。为了安全起见,请使用单击绑定。

考虑将单击绑定放在同级元素上。避免阻止事件冒泡,因为它会使代码变得脆弱/不可移植

快速修复方法是检查单击事件的。找出单击是源于您的
元素还是它的子元素之一


启用编辑(目标){
if(target.nodeName=='gallery'| | target.nestest('gallery')!==null){
//这是画廊的元素或它的孩子…离开这里。。。
返回;
}
...
}

注意:尚未在Internet Explorer中。为了安全起见,请使用$event.target。

该$event.target是jquery否?是否有一种普通的方法来传递目标或获取目标?
$event
是一个aurelia属性,您可以在
委托
触发器
绑定中绑定它,它将允许您访问已触发的DOM事件。该$event.target是jquery否?是否有一种普通的方法来传递目标或获取目标?
$event
是一个aurelia属性,您可以在
委托
触发器
绑定中绑定它,它将允许您访问已触发的DOM事件。
<template>
    <div>
       ...
       <gallery></gallery> <-- I want this to still be able to fire
       <button click.trigger="save()">save</button> <-- I want this to work as well but they wont with "enableEdit()" above attached.
    </div>
</template>
attached() {
    const carousel = new Flickity(this.gallery, {
      cellAlign: 'left',
      contain: true,
      lazyLoad: true,
    });
  }