次のようなマウスクリックイベントをリッスンしているバックボーンビューがあります。
...[code before]...
events: {
mousedown: "catchMouseClick"
},
...[code after]...
「catchMouseClick」で、このような新しいビューを作成します
...[code before]...
catchMouseClick: function(e) {
//Initialize RightClickMenu
this.rightClickMenu = new RightClickMenu({mouseX:e.pageX,mouseY:e.pageY});
this.rightClickMenu.remove();
},
...[code after]...
ご覧のとおり、マウス クリック イベント「e」の pageX と pageY をパラメーターとして使用して、RightClickMenu を作成します。
最後に、RightClickMenu ビューを次に示します。
var RightClickMenu = Backbone.View.extend({
el:$('#outerDiv'),
render: function(){
$(this.el).append(_.template($('#rightClickTemplate').html()));
$('#rightClickMenuDiv').css('top',this.options.mouseY);
$('#rightClickMenuDiv').css('left',this.options.mouseX);
}
});
ID「rightClickMenuDiv」を持つdivを持つ「rightClickTemplate」と呼ばれるテンプレートを使用します。
私の質問は、他にどのようなパスを実行できるでしょうか? この場所のソース コードに多くの jQuery セレクターを含めたくないからです。
テンプレートでこれらのパラメーターを処理できますか? このようなもの(ソースはテストされていません):
<script type="text/template" id="rightClickTemplate">
<div id="rightClickMenuDiv" style="top:<%= mouseY =>, left:<%= mouseX=>">
...
</div>
</script>
そのため、テンプレートの読み込み中にそれらを渡すことができました。