這應該是這個函數的一個bug,沒有考慮到駝峰式的寫法,當我寫成駝峰式,即是有大小寫的變量時就會出現沒有定義的情況。
今天寫個交互,需要用到自定義屬性,因為這個自定義屬性是當作字段用的,就直接用了字段名稱,結果發現取出來是 undefined ,檢查了好幾遍沒有代碼錯誤,試了下另外一個字段,發現可以取到,看了下區別,取不到值得自定義屬性是帶有駝峰的,難道是這個問題?去掉了駝峰中的大寫,發現可以了,可以了!!!
代碼如下:
<a data-field="price" data-orderWay="desc">單價</a>
$
wrap
.on
('
,click
''a'
,() {
function
var
$
this
=
$
(this), field
=
$
this.data
('field'
), orderWay
=
$
this.data
('orderWay'
);console
.log
(field);/
*
price*
/console
.log
(orderWay);/
});*
undefined
*
/
修改如下:
<a data-field="price" data-orderway="desc">單價</a>
$
wrap
.on
('
,click
''a'
,() {
function
var
$
this
=
$
(this), orderWay
=
$
this.data
('orderway'
);console
.log
(orderWay);/
});*
desc*
/
兩處代碼,僅僅是將 orderWay 改成 orderway 而已,區別這么大,jQuery實現 data 的時候應該是存在問題的。還有一點需要說明,就是vue后台給的數據要是字符串,不能是布爾值。不然為‘’