我遇到了一个奇怪的问题,我使用backbone.js创建了一个简单的视图:
class MyApp.Views.Tools.TextBox extends Backbone.View
template: JST['pdfs/tools/text_box']
tagName: "div"
className: "resizable"
id: "resizable"
events:
'click .close': 'closeRect'
initialize: ->
@
render: ->
$(@el).html(@template())
@initDraggable()
this
initDraggable: ->
$(@el).resizable().draggable();
#$(@el).css({"position": "absolute"})
@
closeRect: (event) =>
console.log "pass"
我的模板:
<div class="close">x</div>
<input type="text" name="text_' + @count++ + '" />
当我执行该行时:$(@ el).resizable()。draggable();, jQuery为我的元素添加一个style =“position:relative”。我知道为什么当我在jQuery UI上查看Draggable函数时:
if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
this.element[0].style.position = 'relative';
但我不明白为什么this.element.css(“position”)不会在元素上返回我的css属性:position:absolute。
是否有可能Backbone.js在css之前加载javascript或者不使用我的页面的CSS?
答案 0 :(得分:0)
我很困惑;正如你所指出的那样,jQuery draggable为其元素添加了但我不明白为什么this.element.css(“position”)不会在元素上返回我的css属性:position:absolute。
position: relative
样式。然后,您已将其设置回"position": "absolute"
...但您已将其评论出来。
#$(@el).css({"position": "absolute"})
所以,似乎它仍然relative
的原因是jQuery将其更改为relative
并且您从未将其更改回来。