第一次在这里发帖,但天知道我一直使用这个网站来搜索问题:P 好吧,我现在遇到了自己的问题,我似乎无法轻松地在谷歌上搜索,玩了大约两个小时后,我终于决定发布一个问题,看看大家的想法。
我在这里想要完成的是,当您将鼠标悬停在 div 上时,该按钮会出现在 div 上,单击该按钮会打开一个编辑 Pane 。该按钮正确地显示在 div 上,但由于某种原因,我似乎无法使 onclick 函数发挥作用来拯救我的生命,哈哈。这是我正在使用的代码。如果还不够,请告诉我,我会加一点酱汁。 :P
function place_widget(name, properties){
//bbox
var pleft = properties[0];
var ptop = properties[1];
var width = properties[2];
var height = properties[3];
var pright = pleft + width;
var pbottom = pleft + height;
var bbox = [pleft, ptop, pright, pbottom];
boxes[name] = bbox;
//ID's
var id = 'widget_' + name;
var editspanid = id + "_editspan";
var editbuttonid = id + "_editbutton";
var editpaneid = id + "_editpane";
//Creating Elements
var div = "<div id='" + id + "' class='widget' onmouseover='widget_hover(event);' onmouseout='widget_out(event);'>";
var editbutton = "<a id='" + editbuttonid + "' href='#'><img onclick='toggleEdit;' src='../images/edit_button.png'></a>";
var editspan = "<span id='" + editspanid + "' class='editspan'>" + editbutton + "</span>";
var editpane = "<span id='" + editpaneid + "' class='editpane'>:)</span>";
div += editspan + editpane + "</div>";
body.innerHTML += div;
//Configuring Elements
var editspanelement = document.getElementById(editspanid);
var editbuttonelement = document.getElementById(editbuttonid);
editbuttonelement.onclick = alert; //Does nothing.
var editpaneelement = document.getElementById(editpaneid);
var mainelement = document.getElementById('widget_' + name);
mainelement.style.left = (pleft + leftmost) + "px";
mainelement.style.top = (ptop + topmost) + "px";
mainelement.style.width = width;
mainelement.style.height = height;
getContentsAJAX(name);
}
对丑陋的代码感到抱歉:P 有人知道为什么 onclick 函数不起作用吗?
此外,还有一些额外的信息:如果我打开 firebug 并输入:
document.getElementById('widget_Text_01_editbutton').onclick = alert;
当我点击按钮时,我得到:
uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0" data: no]
我不太确定这意味着什么。
谢谢!
最佳答案
你可以尝试改变:
<img onclick='toggleEdit;' src='../images/edit_button.png'>
至:
<img onclick='toggleEdit();' src='../images/edit_button.png'>
另外,“alert”是你写的函数吗?
关于JavaScript-onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923350/