Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
Backbone.js 主干视图-在鼠标上创建输入不触发事件_Backbone.js - Fatal编程技术网

Backbone.js 主干视图-在鼠标上创建输入不触发事件

Backbone.js 主干视图-在鼠标上创建输入不触发事件,backbone.js,Backbone.js,我正在使用jQuery工具提示插件,该插件需要使用jQuery克隆函数来填充自动生成的工具提示。对于我正在处理的项目,我无法控制工具提示何时启动,也没有可用的回调,因此我使用jQuery.on('mouseenter')来初始化我的事件 我在initialize函数中放置的任何东西都可以工作,但我的click事件不会触发。从我所读到的内容来看,如果定义了el,那么标准事件(单击)应该自动绑定,但这并没有发生,据我所知,这应该正常工作 javascript: Lot = Backbone.View

我正在使用jQuery工具提示插件,该插件需要使用jQuery克隆函数来填充自动生成的工具提示。对于我正在处理的项目,我无法控制工具提示何时启动,也没有可用的回调,因此我使用jQuery.on('mouseenter')来初始化我的事件

我在initialize函数中放置的任何东西都可以工作,但我的click事件不会触发。从我所读到的内容来看,如果定义了el,那么标准事件(单击)应该自动绑定,但这并没有发生,据我所知,这应该正常工作

javascript:

Lot = Backbone.View.extend({
    initialize: function(){
        this.wrapper = $(this.$el).find('.childDiv');
        $(this.$el).css('background-color', 'blue');
        console.log('init');
    },
    events: {
      'click .showChild': 'showfunction'
    },
    showfunction:function(e){
         this.wrapper.slideToggle('fast');   
    }
});

//gives the auto generated tooltip a class, otherwise it would be classless
$.balloon.defaults.classname = "balloon";

//tooltip needs content passed in, the tooltip creator recommends using clone
$('#showParent')
   .balloon({contents: $('.tooltip-content').clone(), position: "bottom right" });

// this may look redundant, but I do not have access to the initialize function
$('#showParent').on('mouseenter', function() {
    console.log('mouse enter');
    lots = new Lot({el: $('.balloon .tooltip-content')});
});
HTML:

悬停
要测试父级的一些文本
点击
这是一个儿童组
这是一把小提琴:


任何关于事件可能不绑定的原因的说明都是值得赞赏的,因为jquery插件使用克隆并在第一次显示时将其附加到HTML的
正文中。这会中断
视图的事件处理程序(因为这意味着主干连接的事件处理程序的范围不再相关)

打破封装的一个选项是附加文档级事件,以您想要的方式处理单击:

$(document).on('click', '.showChild', function (e) {
    console.log('clicked');
    $(this).slideToggle('fast');    
});

当你可以使用
这个.$el
的时候,你为什么要
$(this.$el)
呢?因为一个“了解”主干的人与全世界分享了他们的教程,但显然他们既不知道,也有自己的理由,却忽略了提及它。。谢谢你指出这一点,现在我想起来了,它为什么会在第一时间起作用是有道理的。这是真的,有没有重新绑定事件?问题是我需要使用主干,我发布的是一个小用例,我真的需要主干来处理点击事件,这样就可以在模型上触发更改事件并提示其他视图进行更新。
$(document).on('click', '.showChild', function (e) {
    console.log('clicked');
    $(this).slideToggle('fast');    
});