Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 在第二次之后未触发的事件。html()呈现这些事件_Javascript_Jquery_Html_Backbone.js - Fatal编程技术网

Javascript 在第二次之后未触发的事件。html()呈现这些事件

Javascript 在第二次之后未触发的事件。html()呈现这些事件,javascript,jquery,html,backbone.js,Javascript,Jquery,Html,Backbone.js,我试图用jquery的转换来呈现不同页面的元素(分页),当我呈现第一个页面时一切正常,但是当转换发生时,我附加到元素上的所有事件都消失了,我不知道确切的原因,.html()似乎在第二次呈现时删除了它们,我不知道如何传递它们,以为克隆(真的,真的)就足够了,但没有 var transition_default = function(offsetStart, offsetEnd) { plugin.currentElements.hide(); plugin.curr

我试图用jquery的转换来呈现不同页面的元素(分页),当我呈现第一个页面时一切正常,但是当转换发生时,我附加到元素上的所有事件都消失了,我不知道确切的原因,
.html()
似乎在第二次呈现时删除了它们,我不知道如何传递它们,以为克隆(真的,真的)就足够了,但没有

var transition_default = function(offsetStart, offsetEnd) {
        plugin.currentElements.hide();
        plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(true,true);
        plugin.el.html(plugin.currentElements);
        plugin.currentElements.show();
    };
任何帮助或纠正都将不胜感激

更新1:看起来这家伙几乎有同样的问题,但我不完全确定如何将这个问题的解决方案应用到我的案例中。


更新2:了解如何应用解决方案.Debug(),请参阅下面的答案。

< P>您应该考虑使用委托绑定。

$(existingParentElementOfThings).on(event, childElementSelector, eventHandler);

问题很可能是您正在用html()替换已绑定的内容,因此具有绑定的元素将消失。通过使用一个从未删除的父绑定,来自孩子的事件会冒泡到它并按照预期的方式处理。

你应该考虑使用委托绑定。

$(existingParentElementOfThings).on(event, childElementSelector, eventHandler);

问题很可能是您正在用html()替换已绑定的内容,因此具有绑定的元素将消失。通过在从未删除的父对象上使用委托绑定,子对象中的事件将向上冒泡,并按预期进行处理。

好的,我找到了解决方案

var transition_default = function(offsetStart, offsetEnd) {
        plugin.currentElements.hide();
        plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(true,true);
        $("#nombreINPUT").children().detach();
        $("#nombreINPUT").html(plugin.currentElements);
        plugin.currentElements.show();
    };
只需使用.detach()删除不破坏绑定的元素,然后再添加它们,由于某种原因,事件绑定不会以这种方式销毁


“NombreINPUT”是我正在处理的元素的父元素。

好的,我找到了解决方案

var transition_default = function(offsetStart, offsetEnd) {
        plugin.currentElements.hide();
        plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(true,true);
        $("#nombreINPUT").children().detach();
        $("#nombreINPUT").html(plugin.currentElements);
        plugin.currentElements.show();
    };
只需使用.detach()删除不破坏绑定的元素,然后再添加它们,由于某种原因,事件绑定不会以这种方式销毁


“NombreINPUT”是我所处理的元素的父元素。

我们需要一个测试来真正找出问题所在。@Diego关于您的编辑。您声称“不完全确定如何应用该问题解决方案[sic]”。但是,您需要使用
.detach()
。是使用
.detach()
@Louis Yes当我发布编辑时,我的声明是正确的。经过一段时间的测试,我找到了正确导入解决方案的方法,将再次更新我的帖子。我们需要一个新的方法来真正找出问题所在。@Diego关于你的编辑。您声称“不完全确定如何应用该问题解决方案[sic]”。但是,您需要使用
.detach()
。是使用
.detach()
@Louis Yes当我发布编辑时,我的声明是正确的。经过一段时间的测试,我找到了正确导入解决方案的方法,将再次更新我的帖子。