当前位置:  开发笔记 > 编程语言 > 正文

检测单击Backbone/Marionette中的itemview容器

如何解决《检测单击Backbone/Marionette中的itemview容器》经验,为你挑选了1个好方法。

我有以下项目视图:

return Marionette.ItemView.extend({
        template:tpl,
        tagName: 'div',
        className: 'v_itv_record_type_item',
        events:{
            'click @ui.item':'itemClicked'
        },
        ui:{
            item:'.v_itv_record_type_item'
        },
        itemClicked:function(e){
            console.log('clicked');
        }
    });

使用以下把手模板:

Stuff Goes Here

如果单击其中一个项目视图,则不会注册click事件.我理解Backbone限制只访问DOM的视图片段,但显然这并没有扩展到包含div本身,即使包含div的内容不是任何模板,父视图或其他部分的一部分.

如果我们在.clicktarget点击时更改了ui哈希和点项,则会注册.但这给了我一个

stuff goes here
看似没有理由的结构.这是检测整个项目视图DOM元素的单击的唯一方法吗?



1> T J..:

您可以通过省略选择器在视图元素上注册click事件:

events:{
  'click' :'itemClicked'
}

请注意,如果在视图级别有一个事件处理程序,视图中的所有点击都会冒泡并触发它的处理程序,除非它被停止(event.stopPropagation())在途中.这是预期的行为.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有