smartyでaタグにIDとカスタムデータ属性(data-item)を付与して、
jQuery側でカスタムデータ属性の値を読み込んで、判定したいです。
現在undefinedになってしまい、うまく値がとれていません。
Smarty
Smarty
1 <div> 2 {?foreach from=[ 3 [ 4 'id' => "item1", 5 'attribute' => "cat", 6 ], 7 [ 8 'id' => "item2", 9 'attribute' => "cat", 10 ], 11 [ 12 'id' => "item3", 13 'attribute' => "dog", 14 ] 15 ] key=ck item=ci name=cn?} 16 <div> 17 <a id="{?$ci.id?}” data-item="{?$ci.attribute?}”> 18 </a> 19 </div> 20 {?/foreach?} 21 </div>
jQuery
jQuery
1(function () { 2 'use strict'; 3 4 /////////////////////////////////////////////////////////////////////// 5 6 var data = { 7 box1: { 8 item1: { 9 message: 'message1', 10 image: 'image1.png' 11 }, 12 item2: { 13 message: 'message2', 14 image: '2.png' 15 } 16 }, 17 box2: { 18 tri1: { 19 message: 'message3', 20 image: '5.png' 21 }, 22 tri2: { 23 message: 'message4', 24 image: '6.png' 25 }, 26 } 27 }; 28 29 $('a').on('click', function (evt) { 30 evt.preventDefault(); 31 32 var id = $(this).attr('id'); 33 34 //ここでカスタムデータ属性の値を読み込みたいです 35 var type = $('a').attr('data-item'); 36 console.log(type); 37 38 if(type==="dog"){ 39 var item = data.box1[id]; 40 console.log(item); 41 } 42 else if(type==="cat"){ 43 var item = data.box2[id]; 44 console.log(item); 45 } 46 47 }); 48 49})();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/24 00:56