<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery事件命名空间</title>
</head>
<body>
<div id="tree"></div>
</body>
<script src="../lib/jquery-1.11.1.js"></script>
<script src="../lib/underscore.js"></script>
<script>
var Tree = function(element, options) {
var $tree = this.$tree = $(element);
//监听init事件,触发
//$tree.on('init', $.proxy(options.onInit, this));//用jquery实现 ok~~~
//$tree.on('init',options.onInit);//什么都不写 则会报错
// $tree.on('init',options.onInit.bind(this));//用原生bind实现 ok~~~
$tree.on('init',_.bind(options.onInit,this));//用 underscore实现
this.init();
};
Tree.prototype.init = function() {
console.log('tree init!');
this.$tree.trigger('init');
};
var tree = new Tree('#tree', {
onInit: function() {
console.log(this.$tree.outerHeight());
}
});
</script>
</html>