簡體   English   中英

我可以在一個元素中有兩個 JavaScript onclick 事件嗎?

[英]Can I have two JavaScript onclick events in one element?

我們可以在一個輸入類型按鈕標簽中放置兩個 JavaScript onclick 事件嗎? 調用兩個不同的函數?

這個有效:

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

還有這個:

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

function Ho()
{
    alert('ho');
}

.

<input type="button" value="test" onclick="Hey(); Ho();" />

所以答案是 - 是的,你可以 :) 但是,我建議使用不顯眼的 JavaScript .. 將 js 與 HTML 混合是很討厭的。

的HTML

<a href="#" id="btn">click</a>

和 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");
});

這將在單擊時提醒“foo”和“bar”。

您可以附加一個處理程序,該處理程序可以調用任意數量的其他處理程序:

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

<script type="text/javascript">

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

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

</script>

沒有必要在一個元素中有兩個函數,你只需要一個調用另外兩個函數!

HTML

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

JavaScript

function my_func() {
    my_func_1();
    my_func_2();
}

你也可以試試這樣的

<a href="#" onclick="one(); two();" >click</a>

<script type="text/javascript">
    function one(){
        alert('test');
    }

    function two(){
        alert('test2');
    }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM