Re: [問題] 參數相互傳遞的問題
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
: 舉個例來說,之前有寫個grid的函式
: 會在table上加些功能。
: $("table").grid({'resize':true})
: $.fn.grid = function(param){
: var p = $.extend({
: resize : false,
: .... : true
: },param)
: var table = $(this);
:
: // 相關的處理函式
: var acts= {
: resize_col:function(){
: if(p.resize){
: //縮放表格寬度的程式
: $("thead th",this).each(function(){
: do some thing~
: }
: }
: },
: blablabla :function(){
: }
: }
: }
: 一些動作跟參數就省略了,
: 主要的用意是在thead上的th做拖拉縮放時tbody下的欄位也會跟著變寬
: 因為一些event是在.grid()時就加上去了
: 如果後來又新增一個column,會變成後來新增的並沒有掛上event..
是這個需求的話,考慮一下掛 live event 也是個方案喔,
如果有機會掛成 live event 是最簡單啦~
我覺得你這需求如果不用live ,
應該是要把 掛event 這件事寫成 static utilty ,
你說得功能照我的習慣我大概會這樣作
ex.
var ColumnEvent = {
register:function(target){
$(target) // do something
}
};
// ColumnEvent.register(column) ;
$.fn.grid= function(){
$columns = $("....");
$columns.each(function(){
ColumnEvent.register(this);
});
}
$.fn.addColumn= function(data){
var column = buildColumn(data);
ColumnEvent.register(column);
}
如果要共享資料或function的話,可以考慮把資料放在data裡面。
$(this).data("key","value") ;
基本上很多方法啦,因為你沒有把 Column 的方式講出來,
但是大抵上,就是資料怎麼存跟事件對象怎麼拿到而已,
多繞個幾圈總是拿得到的。
我的習慣是不同的事情有不同的 delegater ,所以看到 funcA 跟 funcB ,
我的第一個直覺就是寫個 funcC 來讓他們互動。
: 因此要先在grid()裡先加新增column並掛上event的函式
: 然後在grid()的外部去呼叫這個新增的函式並且把參數傳進去
: --
: var B = funcB()
: 用上面的例子來說會是
: var table1 = $("table.tab1").grid(..)
: 先把<table class="tab1">加掛grid的功能上去
: 當有新的欄位被加進來時
: table1.addCol(..)
: 這樣來掛上述的拖拉縮放的行為。
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.44.37
推
11/24 22:00, , 1F
11/24 22:00, 1F
→
11/24 22:01, , 2F
11/24 22:01, 2F
→
11/24 22:01, , 3F
11/24 22:01, 3F
→
11/24 22:02, , 4F
11/24 22:02, 4F
→
11/24 22:02, , 5F
11/24 22:02, 5F
→
11/24 22:03, , 6F
11/24 22:03, 6F
→
11/24 22:55, , 7F
11/24 22:55, 7F
推
11/25 09:05, , 8F
11/25 09:05, 8F
→
11/25 11:17, , 9F
11/25 11:17, 9F
→
11/25 11:17, , 10F
11/25 11:17, 10F
→
11/25 19:21, , 11F
11/25 19:21, 11F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章