单击调用javascript函数时按钮不断消失

时间:2015-03-11 10:10:40

标签: javascript html



function remove() {
debugger;
alert('sahd');
}

<div style="padding-top:8px;padding-left:5px;border:solid;border-color:black;border-width:thin;width:350px;height:75px;" id="divv">
    <label>Abcd1</label>
    <input type="button" onclick="remove(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="remove(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="remove(); return false;" />
    </div>
&#13;
&#13;
&#13;

    //javascript code
function remove() {
debugger;
alert('sahd');
}

上面是我的html代码和javascript函数。当我点击按钮时,它们会继续消失。

请帮忙

3 个答案:

答案 0 :(得分:2)

这是一个不幸的命名事情。如果您将功能名称更改为foo(或其他)而不是remove,则它将停止发生(请参阅下文)。

onXyz处理程序运行的环境是复杂的, 一个 的复杂性是您的onXyz代码有效运行使用元素的with语句:

with (theElement) {
    // your code
}

还有更多,但这是它的一个方面。

在现代浏览器中,元素具有remove方法,可将其从DOM中删除。这就是所谓的,而不是全球 remove功能。

使用foo的示例,因此它与元素remove方法的名称不同:

&#13;
&#13;
function foo() {
    alert('sahd');
}
&#13;
<div style="padding-top:8px;padding-left:5px;border:solid;border-color:black;border-width:thin;width:350px;height:75px;" id="divv">
    <label>Abcd1</label>
    <input type="button" onclick="foo(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="foo(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="foo(); return false;" />
    </div>
&#13;
&#13;
&#13;


这是使用现代事件处理技术而不是onXyz处理程序的众多原因之一。另一个是使用onXyz处理程序,你的函数必须是全局的,但全局命名空间已经方式过于拥挤,你最终可能会遇到不幸的冲突。借助现代技术(IE8及更低版本的addEventListenerattachEvent),您可以更好地控制处理程序运行的环境,而且他们不必是全局变量。

答案 1 :(得分:1)

因为您正在调用remove() javascript函数。

参考:W3Schools

只需将function remove()更改为function xyz()

即可

&#13;
&#13;
function xyz() {
debugger;
alert('sahd');
}
&#13;
<div style="padding-top:8px;padding-left:5px;border:solid;border-color:black;border-width:thin;width:350px;height:75px;" id="divv">
    <label>Abcd1</label>
    <input type="button" onclick="xyz(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="xyz(); return false;" />
    <label>Abcd1</label>
    <input type="button" onclick="xyz(); return false;" />
    </div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您还可以使用锚标记并使用css将设计作为按钮。你只需要做如下

 <a href="javascript:remove()" id="my button" >test</a>

这也可以是另一种选择。

希望这会有所帮助。