【发布时间】:2012-12-29 09:00:47
【问题描述】:
我使用 backbone 和 tastypie 适配器和 jquery 来与 DOM 交互。我在骨干中发现了一些我无法理解的东西。我试图简化这个问题的代码。
这是我的 app.js:
$(document).ready(function() {
Point = Backbone.Model.extend({
defaults:{
lat:0,
lng:0
},
urlRoot: '/api/v1/point' ,
initialize: function(attributes){
var that = this;
$('#b1').bind('click',function() {
that.set('lat',that.get('lat')+1);
});
$('#b2').bind('click',function() {
that.save();
});
$('#b3').bind('click',function() {
console.log(that.get('lat'));
});
}
});
point = new Point ();
//****
$('#b1').click();
$('#b2').click();
$('#b3').click(); // >> 1
$('#b1').click();
$('#b2').click();
$('#b3').click(); // >> 2
//****
});
还有我的html:
<script src="/static/js/jquery.js"></script>
<script src="/static/js/backbone.js"></script>
<script src="/static/js/backbone-tastypie.js"></script>
<script src="/static/js/app.js"></script>
<button id="b1">b1</button>
<button id="b2">b2</button>
<button id="b3">b3</button>
如您所见,我正在调用单击代码中的按钮,控制台按预期记录“1”然后是“2”。
当我删除星号 (//*) 之间的代码并按下这些按钮“b1”、“b2”、“b3”、“b1”、“b2”、“ b3' 在浏览器中手动并在控制台中获得 '1' 和 '1'。
我等待来自服务器的响应 1 秒并在控制台中检查它,但应用程序的行为仍然相同:'1'、'2' 带有带有星号的代码和 '1'、'1'、带有按钮按下。
你知道为什么吗?
【问题讨论】:
标签: backbone.js tastypie