Ember.js中实现像jQuery ready 事件的方法

jQuery 下,要在 DOM 准备就绪后绑定事件,可以写在 ready1 里:

 代码如下 复制代码

$( document ).ready(function() {
  // 事件绑定代码写在这里
});

但 Ember.js 里我们不那么写,因为 jQuery 定义的 ready 触发时,也许 Ember.js 视图还没渲染完成,那个时候要给元素绑定事件,元素可能还不存在;你可能考虑用事件委托,但其实不必,因为 Ember.js 提供了一个更方便的事件:didInsertElement2。
Called when the element of the view has been inserted into the DOM or after the view was re-rendered. Override this function to do any set up that requires an element in the document body.
「在视图层的元素插入 DOM 或视图重新渲染后触发」。
假定我们有一个模板,名称为 user:

 代码如下 复制代码
<script type="text/x-handlebars" data-template-name="user">
  <button class="js-submit">提交</button>
</script>

我们希望在点击提交按钮后 alert 一个消息,则这样写:

 代码如下 复制代码
App.UserView = Ember.View.extend({
  didInsertElement: function(){
    $('.js-submit').on('click', function(){
      alert('我点击了提交按钮');
    });
  }
});

这下我们就不需要担心绑定时 .js-submit 元素是不是存在 DOM 中。

时间: 2024-10-02 19:36:55

Ember.js中实现像jQuery ready 事件的方法的相关文章

在JS中a标签加入单击事件屏蔽href跳转页面_javascript技巧

我们常用的在a标签中有点击事件: 1. a href="JavaScript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行javascript语句 2. a href="javascript:void(0);"

js中class的点击事件没有效果的解决方法_javascript技巧

如下所示: $(".xx").clcik(function(){····}); 本来不用js生成类,是有点击效果的一但js里写,就没有点击效果了,如下: 做如下修改即可,监听document 以上就是小编为大家带来的js中class的点击事件没有效果的解决方法全部内容了,希望大家多多支持~ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js class点击事件 javascript class.javascri

在Node.js中使用HTTP上传文件的方法

  这篇文章主要介绍了在Node.js中使用HTTP上传文件的方法,作者以windows下的visual studio作为操作node的环境,推荐阅读!需要的朋友可以参考下 开发环境 我们将使用 Visual Studio Express 2013 for Web 作为开发环境, 不过它还不能被用来做 Node.js 开发.为此我们需要安装 Node.js Tools for Visual Studio. 装好后 Visual Studio Express 2013 for Web 就会转变成一

js中匿名函数的创建与调用方法分析_javascript技巧

本文实例分析了js中匿名函数的创建与调用方法.分享给大家供大家参考.具体实现方法如下: 匿名函数就是没有名字的函数了,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值,很多新手朋友对于匿名函数不了解.这里就来分析一下. function 函数名(参数列表){函数体;} 如果是创建匿名函数,那就应该是: function(){函数体;} 因为是匿名函数,所以一般也不会有参数传给他. 为什么要创建匿名函数呢?在什么情况下会使用到匿

Jquery注册事件实现方法

  本文实例讲述了Jquery注册事件实现方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www

JavaScript中停止执行setInterval和setTimeout事件的方法

 这篇文章主要介绍了JavaScript中停止执行setInterval和setTimeout事件的方法,本文给出操作实例代码和语法介绍,需要的朋友可以参考下     js 代码中执行循环事件时,经常会用到 setInterval 和 setTimeout 这两个方法,关于这两个方法的细节这里不详细讨论了,简要分享下在需要停止循环事件的时候该如何操作. (1)setInterval 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式,停止该方法可使用 clearInterval 方法.具体示

Jquery注册事件实现方法_jquery

本文实例讲述了Jquery注册事件实现方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

JS中的forEach、$.each、map方法推荐_javascript技巧

forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 var array = [1, 2, 3, 4]; for (var k = 0, length = array.length; k < length; k++) { alert(array[k]); } Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的function回

JS中获取函数调用链所有参数的方法

  这篇文章主要介绍了JS中获取函数调用链所有参数的方法,本文直接给出代码示例,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function getCallerArgument(){ var result = []; var slice = Array.prototype.slice; var caller = arguments.callee.caller;   while(caller){ result = result.conca