0

我有一个奇怪的麻烦,我使用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?

4

1 回答 1

0

但我不明白为什么 this.element.css("position") 不返回我在元素上的 css 属性:position:absolute。

我很困惑; 正如您所指出的,jQuery 可拖动position: relative为其元素添加了一种样式。然后,您将其设置回"position": "absolute"... 但您将其注释掉了。

#$(@el).css({"position": "absolute"})

因此,它仍然存在的原因似乎relative是 jQuery 将其更改为relative并且您从未将其更改回来。

于 2013-01-06T18:10:28.270 回答