我可以在一个元素中有两个JavaScript onclick事件吗?

Piy*_*ush 24 javascript

我们可以在一个输入类型按钮标记中放置两个JavaScript onclick事件吗?要调用两个不同的功能?

roc*_*hal 29

这个工作:

<input type="button" value="test" onclick="alert('hey'); alert('ho');" />

还有这个:

function Hey()
{
    alert('hey');
}

function Ho()
{
    alert('ho');
}
Run Code Online (Sandbox Code Playgroud)

.

<input type="button" value="test" onclick="Hey(); Ho();" />
Run Code Online (Sandbox Code Playgroud)

所以答案是 - 是的,你可以:)但是,我建议使用不引人注目的JavaScript ..将js与HTML混合只是令人讨厌.


Sea*_*sey 14

HTML

<a href="#" id="btn">click</a>
Run Code Online (Sandbox Code Playgroud)

和javascript

// get a cross-browser function for adding events, place this in [global] or somewhere you can access it
var on = (function(){
    if (window.addEventListener) {
        return function(target, type, listener){
            target.addEventListener(type, listener, false);
        };
    }
    else {
        return function(object, sEvent, fpNotify){
            object.attachEvent("on" + sEvent, fpNotify);
        };
    }
}());

// find the element
var el = document.getElementById("btn");

// add the first listener
on(el, "click", function(){
    alert("foo");
});

// add the second listener
on(el, "click", function(){
    alert("bar");
});
Run Code Online (Sandbox Code Playgroud)

这会在点击时提醒'foo'和'bar'.


Jac*_*kin 8

您可以附加一个可以根据需要调用其他人的处理程序:

<a href="#blah" id="myLink"/>

<script type="text/javascript">

function myOtherFunction() {
//do stuff...
}

document.getElementById( 'myLink' ).onclick = function() {
   //do stuff...
   myOtherFunction();
};

</script>
Run Code Online (Sandbox Code Playgroud)


Luc*_*ofi 5

一个元素内不必有两个函数,只需要一个函数调用另外两个即可!

HTML
<a href="#" onclick="my_func()" >click</a>

JS
function my_func() {
    my_func_1();
    my_func_2();
}
Run Code Online (Sandbox Code Playgroud)