-
不帶截圖的筆記查看全部
-
關于constructor指向問題: 無論什么時候,只要創建了一個新函數,就會根據一組特定的規則為該函數創建一個prototype屬性,默認情況下prototype屬性會默認獲得一個constructor(構造函數)屬性,這個屬性是一個指向prototype屬性所在函數的指針,說的有些繞了,上代碼: var superClass = function(){ this.num = 2; } superClass.prototype.show = function(){ console.log(this.name); } var F1 = function(){}; console.log(F1.prototype.constructor);//function (){} F1.prototype = new superClass(); console.log(F1.prototype.constructor);//function (){this.num = 2;}查看全部
-
F.prototype = superClass.prototype 和 F.prototype = new superClass();的區別: 前者F僅僅繼承superClass的方法,而構造函數里的屬性不會繼承,后者則是把屬性和prototype的方法也一并繼承了, 代碼驗證: var superClass = function(){ this.num = 2; } superClass.prototype.show = function(){ console.log(this.name); } var F1 = function(){}; var F2 = function(){}; F1.prototype = new superClass(); F2.prototype = superClass.prototype; var f = new F1(); var f2 = new F2(); f.show();//2 f2.show();//undefined查看全部
-
設計模式的階段查看全部
-
學習設計模式的不同階段查看全部
-
將方法寫在構造函數的原型上用prototype 再添加一個調用它的方法init,同樣用prototype給添加上去 Coffee.prototype.init = function(){ this.boilWater(); this.addWater(); ... }; 最后調用它: var coffee = new Coffee(); coffee.init();查看全部
-
整理下js的思路: 寫好主功能函數,就是點亮這個函數-->為元素一一綁定事件 為元素綁定事件有個小細節:mouseout事件綁定在ul這個父容器上,而不是li單個項目上。 完善: 全局變量重名或者沖突,解決方法:自我匿名函數,就是用一個閉包 不用為每個li都綁定事件,只需要為他們父容器綁定即可,利用事件的冒泡處理 $rating.on('mouseover','.rating-item',function(){}查看全部
-
整理下js的思路: 寫好主功能函數,就是點亮這個函數-->為元素一一綁定事件 為元素綁定事件有個小細節:mouseout事件綁定在ul這個父容器上,而不是li單個項目上。 完善: 全局變量重名或者沖突,解決方法:自我匿名函數,就是用一個閉包 不用為每個li都綁定事件,只需要為他們父容器綁定即可,利用事件的冒泡處理 $rating.on('mouseover','.rating-item',function(){},子元素事件委托給父元素處理 為了實現功能復用,我們可以把它寫成一個模塊,可以用函數來實現,利用函數帶參實現不同需求; 命名為init函數,怎么使用呢?就可以用return返回來使用,而return返回對象的話就可以這樣使用:rating.init("#el",num) 這里有個小細節:功能函數例如lightOn因為只需要申明一次就可以把它放到init函數外面。查看全部
-
半顆星星的計算方法查看全部
-
var rating = (function() { var lightOn = function(item, num) { item.each(function(index) { if(index < num) { $(this).css("background-position", "0 -36px"); } else { $(this).css("background-position", "0 0"); } }) } var init = function(el, num) { var rating = $(el); var item = rating.find(".rating-item"); //初始化 lightOn(item, num); //事件委托 子元素事件(.rating-item)委托給父元素(rating)處理 rating.on("mouseover", ".rating-item", function() { lightOn(item, $(this).index() + 1); }).on("click", ".rating-item", function() { num = $(this).index() + 1; }).on("mouseout", function() { //事件綁定 lightOn(item, num); }) } //jQuery插件 $.fn.extend({ rating: function(num) { return this.each(function() { init(this, num); }) } }) return { init: init } })() //方法 //rating.init("#rating",2); //插件 $("#rating").rating(2);查看全部
-
$(this).css("background-position", "0 -36px"); $(this).animate({height:"300px"});查看全部
-
CSS樣式放在頭部,讓瀏覽器先渲染樣式 js行為放在body最后,防止找不到節點,同時不會阻塞頁面 CSS和js都引入外部文件的形式,這樣可以在客戶端緩存。查看全部
-
星級評分查看全部
-
前端2查看全部
-
半顆星星的計算方法查看全部
舉報
0/150
提交
取消