list[i].fnctn
- クリック イベント ハンドラーにアタッチする関数の名前が含まれています。js
これらの関数を同じファイル内でグローバルに定義しています
function createList(list){
var parentID = $("#content_nav ul");
var len = list.length;
for(var i=0;i<len;i++){
var anchorElement = jQuery('<a />',{text:list[i].text});
var liElement = jQuery('<li />',{"class":"navlink_"+(i+1),id:"navlink_"+(i+1)});
//anchorElement.attr('onclick',list[i].fnctn+"()"); - Works fine on desktop browsers but doesn't work on mobile devices. (Mobile devices are my target platform
anchorElement.on('click',{funct:list[i].fnctn},function(event) {
return window[event.data.funct](event);
});
liElement.append(anchorElement);
parentID.append(liElement);
}
}
このコードは、デスクトップ ブラウザーで問題なく動作します。しかし、電話ギャップを使用してモバイル デバイスに展開すると機能しません。
何が問題ですか?
私が試したデバイスは、Samsung Google Nexus S (ICS 4.0.0) iPhone 4 および iPhone 4s (シミュレーター)、Android シミュレーターです。
PS : 他に良い方法があれば教えてください。私が今していることは、JSON からイベント ハンドラーに割り当てられる関数の名前を (文字列として) 取得し、上記のコードを使用して適用することです。それがベストプラクティスかどうかはわかりません。助けてください :)