gpt4 book ai didi

javascript - 在javascript中将字符串变量的内容作为代码行执行?

转载 作者:行者123 更新时间:2023-11-28 18:36:34 25 4
gpt4 key购买 nike

我有类似的东西

"_onmouseover" : "this.className=this.className.replace(' hover', '')";

我正在尝试执行它

buttonObject.onmouseover = function( ) { window [ this.someObject.__onmouseover ] () ; };

我不知道这怎么可能。

让我告诉你们我的情景。我正在创建此插件以在 jquery 对话框中生成四种类型的对话消息。那些是“警告”、“错误”、“注意”和“确认”。所以假设在 dom 中有 4 个跨度应该触发这四个。

<span id='DialogueWarning'> Warning </span> 
<span id='DialogueError'> Error </span>
<span id='DialogueNote'> Note </span>
<span id='DialogueConfirm'> Confirm </span>

现在让我们点击以显示对话

jQuery('#DialogueWarning').click(function(){

var dialogue = new Dialogue({
"type":"Warning",
"message":"Are you sure you want to close this window without saving your changes?",
"buttons":
[
{
"text":"Close without saving",
"_onmouseover": "this.className+=' hover'",
"_onmouseout":"this.className=this.className.replace(' hover', '')",
"bClass":"e_customButton"
},

{
"text":"Don't Close",
"_onmouseover": "this.className+=' hover'",
"_onmouseout":"this.className=this.className.replace(' hover', '')",
"bClass":"e_customButton"
}
],
"closeOnBackgroundClick" : true
});
});

看到“_onmouseover”和_onmouseout 东西,我需要它们。有什么办法可以让我以另一种方式通过那些

最佳答案

如果您需要一个eval,我敢打赌您的应用程序设计存在一些问题。
例如。你可以避免这样的事情:

// ...
var eventHandlers = {
"_onmouseover" : "this.className=this.className.replace(' hover', '')"
};

// ...

eval(eventHandlers._onmouseover);

就这样去做吧

var eventHandlers = {
_onmouseover: function(e) {
this.className=this.className.replace(' hover', '');
}
};

buttonObject.onmouseover = eventHandlers._onmouseover;

一些要阅读的文章:

# 1
# 2
# 3

关于javascript - 在javascript中将字符串变量的内容作为代码行执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12517199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com