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