MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-22, 19:43

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 11 篇文章 ] 
發表人 內容
文章發表於 : 2007-03-07, 21:59 
離線
頭像

註冊時間: 2007-03-07, 21:45
文章: 5
來自: Taiwan.Tainan
Prototype 1.5版本 改良了 $() 函式 :twisted:

跟 jQuery 的一樣,可以串接下去

$('Element').method1('String...').method2('????')

我想實作這個函式,可是一直失敗

請問是不是要利用多重繼承呢? :?:


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-08, 21:34 
離線
頭像

註冊時間: 2005-02-24, 19:15
文章: 1037
來自: Taiwan
我不懂這些, 不過有個很強的人,
也許問問他可以得到解答.
Blogger Hack Tip #2 - Javascript Code Style

_________________
Amauds's Firefox
曾經妳以為最可靠的依賴;其實從未曾真實的存在過。
圖檔圖檔


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-09, 03:36 
離線
頭像

註冊時間: 2006-10-27, 07:29
文章: 1068
delta 寫:
Prototype 1.5版本 改良了 $() 函式 :twisted:

跟 jQuery 的一樣,可以串接下去

$('Element').method1('String...').method2('????')

我想實作這個函式,可是一直失敗

請問是不是要利用多重繼承呢? :?:


失敗的訊息是....?


回頂端
Opera/9.10 (Windows NT 5.1; U; ja)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-09, 06:29 
legnaleurc 寫:
delta 寫:
Prototype 1.5版本 改良了 $() 函式 :twisted:

跟 jQuery 的一樣,可以串接下去

$('Element').method1('String...').method2('????')

我想實作這個函式,可是一直失敗

請問是不是要利用多重繼承呢? :?:


失敗的訊息是....?



找不到這個方法、不然就是沒有定義,真!@#$%^&


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-09, 14:13 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
能不能提供一個範例?
像比如說... $$('#sidebar div').addClassName('sidecontent').hide() 就會發生錯誤,因為 $$() 傳回來的是陣列,所以必須:
$$('#sidebar div').invoke('addClassName', 'sidecontent').invoke('hide')

另外,如果 $('id') 甚麼都沒傳回(元素不存在)應該也不行。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-09, 17:02 
離線
頭像

註冊時間: 2007-03-07, 21:45
文章: 5
來自: Taiwan.Tainan
kourge 寫:
能不能提供一個範例?
像比如說... $$('#sidebar div').addClassName('sidecontent').hide() 就會發生錯誤,

?.

我要實作類似的東西 :o

例如:

'#divBox'.toElement().setClassName('style1').position(10,40);


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-09, 22:23 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
delta 寫:
kourge 寫:
能不能提供一個範例?
像比如說... $$('#sidebar div').addClassName('sidecontent').hide() 就會發生錯誤,

?.

我要實作類似的東西 :o

例如:

'#divBox'.toElement().setClassName('style1').position(10,40);


像 Prototype 內建是不能 '#divBox'.toElement() 的,除非你加個:
String.prototype.toElement = function() {
return $(this);
};
那就可以。

假如你要自訂的是可以套在 Element 上的函式,可以直接擴充 Element.Methods 這個物件。別忘了傳回本來的元素。
Object.extend(Element.Methods, {
position: function(element, x, y) {
//做一點事情,調調位置
return element;
}
});

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-10, 02:18 
離線
頭像

註冊時間: 2007-03-07, 21:45
文章: 5
來自: Taiwan.Tainan
kourge 寫:
假如你要自訂的是可以套在 Element 上的函式,可以直接擴充 Element.Methods 這個物件。別忘了傳回本來的元素。
Object.extend(Element.Methods, {
position: function(element, x, y) {
//做一點事情,調調位置
return element;
}
});


謝謝你的回答 :wink:

可是我不打算使用 Framework 這類的東西完成 8-)

關於取得 Element 的函式

我已經寫好了,仿 CSS Selector 去取得元素 :wink:


只是沒辦法像 Prototype,可以串接方法、而且方法可以不用照順序接

Ex:
Function1('hi').method6().method2('world'); :cry:

看來我的 Level 還很低 :oops:

Prototype 的 Element 物件,程式碼還真的有點複雜呢


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-12, 13:06 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
delta 寫:
kourge 寫:
假如你要自訂的是可以套在 Element 上的函式,可以直接擴充 Element.Methods 這個物件。別忘了傳回本來的元素。
Object.extend(Element.Methods, {
position: function(element, x, y) {
//做一點事情,調調位置
return element;
}
});


謝謝你的回答 :wink:

可是我不打算使用 Framework 這類的東西完成 8-)

關於取得 Element 的函式

我已經寫好了,仿 CSS Selector 去取得元素 :wink:


只是沒辦法像 Prototype,可以串接方法、而且方法可以不用照順序接

Ex:
Function1('hi').method6().method2('world'); :cry:

看來我的 Level 還很低 :oops:

Prototype 的 Element 物件,程式碼還真的有點複雜呢

你的函式會傳回陣列嗎?自己寫函式的目的是甚麼?
如果是傳回陣列就比較辛苦一點,如果光傳回一個物件還比較容易。
傳回來的是元素嗎?還是其他東西?

像是用 CSS selector 取回元素這種東西,除非有非常好的理由,否則用 framework 比較好,省得自己麻煩。主要就是要好好學 framework 的裡裡外外、運作模式。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-13, 05:41 
kourge 寫:
你的函式會傳回陣列嗎?自己寫函式的目的是甚麼?
如果是傳回陣列就比較辛苦一點,如果光傳回一個物件還比較容易。
傳回來的是元素嗎?還是其他東西?

像是用 CSS selector 取回元素這種東西,除非有非常好的理由,否則用 framework 比較好,省得自己麻煩。主要就是要好好學 framework 的裡裡外外、運作模式。


該函式依照選擇器的內容傳回 元素 陣列

寫該函式的目的是滿足好奇心、曉得程式怎麼運作

而且我打算將我所學到的寫成一個library :wink:


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
  
引用回覆  
 文章主題 :
文章發表於 : 2007-03-13, 13:16 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
Anonymous 寫:
kourge 寫:
你的函式會傳回陣列嗎?自己寫函式的目的是甚麼?
如果是傳回陣列就比較辛苦一點,如果光傳回一個物件還比較容易。
傳回來的是元素嗎?還是其他東西?

像是用 CSS selector 取回元素這種東西,除非有非常好的理由,否則用 framework 比較好,省得自己麻煩。主要就是要好好學 framework 的裡裡外外、運作模式。


該函式依照選擇器的內容傳回 元素 陣列

寫該函式的目的是滿足好奇心、曉得程式怎麼運作

而且我打算將我所學到的寫成一個library :wink:

說實在話這樣是跟「重新發明輪子」一樣,沒有必要。我真的真的真的強烈建議不要這麼做。
不過...

假如這是你的 function:
代碼:
function getElements(參數) {
 // 取得一堆元素
 // 假設 element 是元素陣列
 var methods = {
  removeClassName: function(class) {
   var classes = this.className.split(' ');
   var toBeRemoved = classes.indexOf(class);
   if (toBeRemoved == -1) return this;
   classes.splice(toBeRemoved, 1);
   this.className = classes.join(' ');
   return this;
  },
   
  又一個函式: function(參數) {
    // 做點事情:this 就是元素本身
    // 做完了
    return this;
    // 一定要再把原來的元素 return 一次,這樣才能串接
  }
 };

 // 自訂的 method 都定義完了
 // 開始套用到元素上面
 for (var i = 0; length = elements.length; i < length; i++) {
  for (method in methods) { // 一次一次讀 method
   elements[i][method] = methods[method]; // 套上去
  }
 }

 return elements; // 把取得的元素傳回
}

但是光這樣還不夠。因為 method 是套在陣列內的個別元素上,不是陣列本身。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 11 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 5 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群