Javascript 将jQuery与Ember操作处理程序一起使用
我试图从ember controller中的操作处理程序中访问jquery对象($)。但是它说,Javascript 将jQuery与Ember操作处理程序一起使用,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我试图从ember controller中的操作处理程序中访问jquery对象($)。但是它说,$是未定义的 如何从操作处理程序访问jQuery对象? 以这个应用程序为例: <div id="main"></div> <script type="text/x-handlebars" data-template-name="index"> <div id="scroll-div"> <h1>Test Div<
$
是未定义的
如何从操作处理程序访问jQuery对象?
以这个应用程序为例:
<div id="main"></div>
<script type="text/x-handlebars" data-template-name="index">
<div id="scroll-div">
<h1>Test Div</h1>
</div>
<a href="" {{action "findHeight"}}>Find height</a>
</script>
JS fiddle:我想你需要改变:
findHeight: function(){
console.log(this.$('#scroll-div').height);
}
关于这一点:
findHeight: function(){
console.log($('#scroll-div').height());
}
在这一行
console.log(this.$('#scroll div').height)
在代码中$(“#scroll div”)。height
这里scroll div
是一个id,它的长度应该只有一个,因为每个元素的id应该是唯一的,要获得该div的高度,应该使用.height()
不仅仅是.height
首先,不建议在控制器中执行dom操作。更好的方法是设置target=“view”并在那里处理此操作。那么您的代码内部操作将正常工作。如果您想在控制器本身中处理它,请使用此代码段
App.IndexController = Ember.ArrayController.extend({
actions: {
findHeight: function(){
alert($('#scroll-div').height());
}
}
});
$未定义
表示没有引用jquery库。由于$
是jQuery
的别名。您是否尝试使用“jQuery”而不是“$”?因此,我猜jQuery对象没有通过this
传递给操作处理程序,就像我们在didinserelement
@Sisir是的,我猜this
引用dom节点,而$(“#滚动div”)
是一个jquery对象,因此可能会导致一些问题。我没有在余烬js上工作过。
App.IndexController = Ember.ArrayController.extend({
actions: {
findHeight: function(){
alert($('#scroll-div').height());
}
}
});