日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

html函数属性的赋予,你可以将javascript函数名称设置为html属性吗?

發(fā)布時(shí)間:2025/5/22 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html函数属性的赋予,你可以将javascript函数名称设置为html属性吗? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

你可以,是的.你是否應(yīng)該完全是另一個(gè)問(wèn)題,答案幾乎肯定是“不”(就執(zhí)行字符串而言;就下面所示的替代方案而言,有時(shí)它是有用的).

你評(píng)估代碼片段的方式(你所擁有的不只是一個(gè)函數(shù)名,因?yàn)?))將使用可怕的eval:

eval(fn);

幾乎總是比使用eval更好的選擇. (見(jiàn)下文.)

評(píng)估示例:

$("#example").on("click", function() {

var fn = $("#example").attr("data-function-name");

eval(fn);

});

function showAllElements() {

alert("showAllElements was called");

}

Click Me

其中一個(gè)更好的選擇是將函數(shù)引用存儲(chǔ)為對(duì)象的屬性,然后使用括號(hào)表示法根據(jù)函數(shù)名稱獲取函數(shù)引用:

例:

var functions = {

showAllElements: function() {

alert("showAllElements was called");

}

};

$("#example").on("click", function() {

var fn = $("#example").attr("data-function-name");

functions[fn]();

});

Click Me

請(qǐng)注意,我只是存儲(chǔ)函數(shù)名稱,而不是任意代碼.

更新:如果您的功能嵌套在對(duì)象內(nèi),請(qǐng)參見(jiàn)canon’s answer,以便巧妙地處理它,例如: mumble.foo.doSomething,使用reduce. (reduce是ES5功能,但它是可填充的.)

旁注:除非您執(zhí)行的操作不僅僅是檢索data- *屬性的值,否則請(qǐng)不要使用數(shù)據(jù),請(qǐng)使用attr. data初始化元素的數(shù)據(jù)高速緩存,讀入該元素的所有data- *屬性,并將它們復(fù)制到高速緩存.如果你沒(méi)有使用它,沒(méi)有理由這樣做.您使用數(shù)據(jù)訪問(wèn)data- *屬性的想法是一種常見(jiàn)的誤解.

總結(jié)

以上是生活随笔為你收集整理的html函数属性的赋予,你可以将javascript函数名称设置为html属性吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。