2012-08-22 55 views
0

我有一種奇怪的麻煩相對於我的元素,我創建使用Backbone.js的一個簡單的觀點:jQuery的添加位置:使用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的可拖動功能:

if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) 
this.element[0].style.position = 'relative'; 

但我不明白爲什麼this.element.css(「位置」)不返回該元素在我的CSS屬性:位置:絕對。

是否有可能Backbone.js在CSS之前加載JavaScript或不使用我的網頁的CSS?

+0

$(document).ready(function(){...}); ? –

+0

也許,我該怎麼做骨幹?像往常一樣?我把它放在視圖上?路由器? – Sebastien

+0

用(function(){...})() –

回答

0

但我不明白爲什麼this.element.css(「位置」)不返回我的css屬性的元素:位置:絕對。

我很困惑;正如你所指出的那樣,jQuery可拖拽添加一個position: relative風格到它的元素。然後,您已將其重新設置爲"position": "absolute" ...但您已將其評論出來。

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

所以,它看起來像它仍然relative的原因是,jQuery的將其更改爲relative,你永遠不改了回來。