iT邦幫忙

0

如何把取得的data-帶到function

$(".save").click(function(e){
	var id = e.currentTarget.dataset.id;
	$.ajax({
		type:'POST',
		url:'update?id='+id,
		cache:false,
		data:$("#form"+id).serialize(),
		success: function(data){
			$("#data"+id).html(data);
			get_total*();
		}
	});
});

我取得的id
我想把他加入到 get_total()
也就是說假設id=50 那效果必須為 get_total50() 這樣
請問這要怎麼帶入啊?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
tzuchin
iT邦新手 5 級 ‧ 2016-10-09 10:22:49
最佳解答

如果你用JQuery,
var id = e.currentTarget.dataset.id;
可以寫成
var id = $(this).data('id');

回到你主要的問題,
關鍵字"動態變數",可以去google一下,

var idFuncName = eval('get_total'+id);
idFuncName(); // 假設id=50,這邊就會執行 get_total50() 這個function
0
622
iT邦新手 5 級 ‧ 2016-10-08 15:10:25
get_total(50)
function get_total(a)
{
 document.write(a);//a=50;
}
2
fillano
iT邦超人 1 級 ‧ 2016-10-10 22:24:54

我是不太建議用eval,而且其實已經有伺服器header可以告訴瀏覽器禁止使用eval來提升網站安全性。

假設你在global scope定義了一個函數,名稱叫做get_total50,那在網頁環境中,可以這樣呼叫他:

$(".save").click(function(e){
	var id = e.currentTarget.dataset.id;
	$.ajax({
		type:'POST',
		url:'update?id='+id,
		cache:false,
		data:$("#form"+id).serialize(),
		success: function(data){
			$("#data"+id).html(data);
			window['get_total50']();
		}
	});
});
...
...
function get_total50(input) {
    ...
}
tzuchin iT邦新手 5 級 ‧ 2016-10-11 14:01:09 檢舉

受教了,謝謝。

我要發表回答

立即登入回答