作者ChowMein (杉斑加纹)
看板Ajax
标题Re: [问题] 请问引数为函式的$.data用法
时间Fri Aug 31 14:33:01 2012
※ 引述《kilva (嗡嗡)》之铭言:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 114.44.169.165
: → ousapas:引数好像不能只有一个function 08/31 08:41
: → ousapas:http://goo.gl/miVMI 08/31 08:42
: → ousapas:218行 key只有处理object和string的情况 08/31 08:43
: 推 Fantasywind:不能单传f source里面type obj全部当作物件处理 08/31 08:55
: → KawasumiMai:呼叫之後的回传值? 08/31 09:58
:
: 再试验的结果,只有$.data()函式的引数可以用函式,$.fn.data()会出现错
: 误讯号。
: 而且用法似乎和物件差不多。
: var a = function(){}; a.x = 3; a.y = 4; a.z = 5;
: $.data($("div")[0],a)会在第一个<div>元素上储存a的静态变数。
: 效果和$($("div")[0]).data("x",3).data("y",4).data("z",5)一样。
:
: 另外,在ousapas提供的网址中的第249行中,将
: 「if ( typeof key === "object" ) {」改成
: 「if ( typeof key === "object" || typeof key === "function" ) {」
: $("div").data(a)就可以使用了。
: 效果和$("div").data("x",3).data("y",4).data("z",5)一样。
: 不知道为什麽原始码中没有这样写?
$.data 已经被限制为内部使用, 它确实允许传入function,
可能是jquery本身有特别用途, 或只是之前考虑不周, 写错了,
为了维持相容只好留下来
使用 (key,value) 传入单一值, 和用{key1:value2, key2:value2} 传入多个值,
是jquery的惯例, .data .css .attr .prop 都是, 保持一致性的作法才是正确的
有什麽特别的理由一定要用 var a = function(){}; a.x = 3; a.y = 4; a.z = 5;
这种方式来使用 data() 吗? 依js的灵活性, 也许可以再想出十种引数,
但回归原点, 根本就只要两种, 就是单一值和多值
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.104.126.239