Javascript:使用动态参数从onclick事件调用对象函数/方法
我正在尝试这样做:Javascript:使用动态参数从onclick事件调用对象函数/方法,javascript,object,dynamic,onclick,invoke,Javascript,Object,Dynamic,Onclick,Invoke,我正在尝试这样做: <script> var MyItem; MyItem = new myobj('testobj'); function myobj(id) { var _id = id; this.toggle = function() { ... } function draw() { document.body.innerHTML += "<a onclick='" +
<script>
var MyItem;
MyItem = new myobj('testobj');
function myobj(id)
{
var _id = id;
this.toggle = function()
{
...
}
function draw()
{
document.body.innerHTML += "<a onclick='" + MyItem + ".toggle();'>link</a>";
}
draw();
}
</script>
var-MyItem;
MyItem=新的myobj('testobj');
函数myobj(id)
{
var _id=id;
this.toggle=函数()
{
...
}
函数绘图()
{
document.body.innerHTML+=“link”;
}
draw();
}
我得到“未定义函数”,但可以从控制台成功调用MyItem.toggle()。我也试过:
document.body.innerHTML += "<a onclick='(function(){" + MyItem + ".toggle();})()'>link</a>";
document.body.innerHTML+=“link”;
锚必须在javascript中动态创建。如何从动态创建的锚点调用MyItem对象方法toggle()
另外,我在内存中输入js,所以如果有语法错误,我道歉。那不行。您正在尝试使用类似字符串的对象。请尝试以下操作:
document.body.innerHTML += "<a onclick='(function(){MyItem.toggle();})()'>link</a>";
document.body.innerHTML+=“link”;
不要添加事件处理程序和类似的元素。使用DOM方法
var anchor = document.createElement("a");
anchor.innerHTML = "link";
anchor.onclick = function(){ MyItem.toggle(); };
document.body.appendChild(anchor);
我真的认为你在追求这样的东西
var MyItem;
MyItem = new myobj('testobj');
function myobj(id) {
var that = this;
this.toggle = function () {
alert(id);
}
function draw() {
var anchor = document.createElement("a");
anchor.innerHTML = "link";
anchor.onclick = function () {
that.toggle();
};
document.body.appendChild(anchor);
}
draw();
}
您正在输出一个字符串;这毫无意义。您需要在该字符串中输出变量的名称。。。如果你真的想这样做,你是对的。应该是_id+'.toggle()'。。。ID always=obj instance name。您对该方法拥有绝对权利,但MyItem对象仅作为存储在_ID属性中的字符串可用。如何将其添加到onclick事件中?为什么必须指定this=this?