以下内容对firefox不起作用。我正在尝试删除点击表格行。谁能请帮忙。非常感谢。
<INPUT TYPE="Button" onClick="delRow()" VALUE="Remove">
function delRow(){
if(window.event){
var current = window.event.srcElement;
}else{
var current = window.event.target;
}
//here we will delete the line
while ( (current = current.parentElement) && current.tagName !="TR");
current.parentElement.removeChild(current);
}
答案 0 :(得分:9)
function() { delRow(); }
。如您所见,除非您在IE中,因为事件位于窗口对象中,否则您将无法在event
中看到delRow()
对象。我建议您使用jQuery等javascript库,或者如果需要保持相对相同的话,请更改代码。
<INPUT TYPE="Button" onclick="delRow(event);" VALUE="Remove">
function delRow(e) {
var evt = e || window.event; // this assign evt with the event object
var current = evt.target || evt.srcElement; // this assign current with the event target
// do what you need to do here
}
答案 1 :(得分:1)
您必须使用event.target
代替window.event.target
才能使用Firefox。尝试使用以下内容。
<INPUT TYPE="Button" onclick="delRow()" VALUE="Remove">
function delRow(){
if(window.event){
var current = window.event.srcElement;
}else{
current = event.target;
}
//here we will delete the line
while ( (current = current.parentElement) && current.tagName !="TR");
current.parentElement.removeChild(current);
}
答案 2 :(得分:1)
var CurrentObject =
0 < window.navigator.appVersion.toString().indexOf("MSIE")
?
window.event.srcElement
:
evt.target;
答案 3 :(得分:0)
这是Mozilla's documentation of the Event class;可能会给你一些见解。
答案 4 :(得分:0)
永远不要使用单独的浏览器检查,例如“检查MSIE”。
你知道你需要检查多少个浏览器......以及个别浏览器版本...来检查它们吗?
永远不要使用jQuery。自己编写正确的代码。当你不打算使用99%的功能时,永远不要包含(无用的)大型库。
答案 5 :(得分:0)
刚刚发现,在ie&amp; ff和chrome。其他人不知道,但我希望这一切都能在其他方面发挥作用。至少希望如此:) 作为html,JS和PHP的初学者,在这些东西中没有标准是非常烦人的!甚至样式一个简单的div元素可能是一个根据,因为在不同的浏览器上行为不是总是相同的!?
function somefunc()
{
var callerelement = arguments.callee.caller.arguments[0].target;
alert(callerelement.id)
}