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 を使用しませんか?