Javascript Backbone.js双重渲染问题
我正在使用Backbone.js创建一个应用程序。但是,它会呈现代码两次。这就好像代码运行了两次。我一直在寻找重复的代码,但找不到任何可以运行两次的代码 例如,在init上,主体内容应该由div#app#容器标记包装。但当我加载页面时,它会包装在一个div#app#容器中,然后包装在一个dev#app#容器标记中 另外,如果我在“initialize()”函数中放入alert('test'),它会提醒“test”两次 这有意义吗 --编辑-- 在玩过代码之后,我发现如果我去掉了包裹身体中所有东西的线条,那么问题就停止了。因此,wrapInner或影响主体的某些内容导致代码运行两次 问题代码:Javascript Backbone.js双重渲染问题,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我正在使用Backbone.js创建一个应用程序。但是,它会呈现代码两次。这就好像代码运行了两次。我一直在寻找重复的代码,但找不到任何可以运行两次的代码 例如,在init上,主体内容应该由div#app#容器标记包装。但当我加载页面时,它会包装在一个div#app#容器中,然后包装在一个dev#app#容器标记中 另外,如果我在“initialize()”函数中放入alert('test'),它会提醒“test”两次 这有意义吗 --编辑-- 在玩过代码之后,我发现如果我去掉了包裹身体中所有东西
$("body").wrapInner('<div id="app_container" />');
$(“body”).wrapInner(“”);
以下是我的应用程序JS文件的代码:
(function ($) {
window.AppView = Backbone.View.extend({
self: this,
el: $("body"),
defaults: {
current_selected: "",
last_selected: "",
toggle: 0,
Messages: "",
latest_template: "",
},
events: {
"click #annotate_app_container" : "select"
},
initialize: function()
{
$("body").wrapInner('<div id="app_container" />');
$.get('/assets/includes/ajax.php', function(data){
$("#app_container").after(data);
});
},
select: function (e) {
e.preventDefault();
// Code goes here
},
});
window.App = new AppView;
})(jQuery);
(函数($){
window.AppView=Backbone.View.extend({
赛尔夫:这个,
el:$(“正文”),
默认值:{
当前选定的_:“”,
上次选择的_:“”,
切换:0,
消息:“”,
最新的_模板:“”,
},
活动:{
单击“注释应用程序容器”:“选择”
},
初始化:函数()
{
$(“正文”)。wrapInner(“”);
$.get('/assets/includes/ajax.php',函数(数据){
$(“#应用程序容器”)。在(数据)之后;
});
},
选择:功能(e){
e、 预防默认值();
//代码在这里
},
});
window.App=新建AppView;
})(jQuery);
我在页面上包含的这些文件如下:
<script type="text/javascript" src="/assets/js/json2.js"></script>
<script type="text/javascript" src="/assets/js/jquery.min.js"></script>
<script type="text/javascript" src="/assets/js/underscore.js"></script>
<script type="text/javascript" src="/assets/js/backbone.js"></script>
<script type="text/javascript" src="/assets/js/mustache.js"></script>
<script type="text/javascript" src="/assets/js/app.js"></script>
请告诉我您认为它是什么。您可能会检查导致页面再次加载的任何哈希更改事件。我曾经有过一个类似的行为,它是由元素
引起的,该元素也绑定了一个事件。这是因为您在文档中执行了一个ajax调用。它将触发第二个文档就绪事件。你可能想做一些类似的事情
setTimeout(function(){window.App = new AppView()}, 1);
可能不是问题,但我确信这与get电话有关