2014-05-07 154 views
0

我一直在試圖找出過去3個小時左右,但我無法找到答案的任何地方。我想要做的是使用單選按鈕的onclick事件動態更改鏈接的onclick事件。這甚至有可能嗎?我的代碼看起來是這樣的..如何使用單選按鈕的onclick事件更改鏈接的onclick事件?

<input type="radio" name="test" onclick="document.getElementById('submit').onclick='alert(\'Hello\');'">First<br/> 
    <input type="radio" name="test" onclick="document.getElementById('submit').onclick='alert(\'Hi\');'">Second<br/> 

<a id="submit" onclick="" href="index.html">Click Here</a> 
+0

不要ü想要在單選按鈕和鏈接點擊時激發相同的功能? – Wanderer

+0

請詳細說明你的問題,你想要什麼?當任一個單選按鈕被點擊時,你想要鏈接到別處嗎? – Hawk

+0

我想根據點擊的單選按鈕來設置鏈接的onclick事件。例如,如果點擊「第一個」按鈕,則點擊應設置爲onclick =「alert('Hello');」 –

回答

0

試試這個,

<input type="radio" name="test" onclick="attachEventToLinkOnClick(myFuncion1)">First<br/> 
<input type="radio" name="test" onclick="attachEventToLinkOnClick(myFuncion2)">Second<br/> 

<a id="submit" onclick="" href="index.html">Click Here</a> 

<script type="text/javascript"> 
    function attachEventToLinkOnClick(func){ 
     var link = document.getElementById("submit"); 
     link.onclick = fun; 
    } 

    function myFuncion1(){ 
     alert("hello"); 
    } 
    function myFuncion2(){ 
     alert("hi"); 
    } 

</script> 
+0

我想他想要在動態附加事件 –

+0

謝謝,但我不想更改href。我想改變onclick。 –

0

我建議增加一個新的腳本在你寫出<input>和之後,標記元素。

<input type="radio" name="test" onclick="changeFun(fun1)">First<br/> 

<input type="radio" name="test" onclick="changeFun(fun2)">Second<br/> 

<a id="submit" onclick="" href="index.html">Click Here</a> 

的腳本標籤中WIRTE如下:

<script type="text/javascript"> 

    var fun1 = function() { 
     alert('Hello') 
    } 

    var fun2 = function() { 
     alert('Hi')  
    } 

    var changeFun = function (newFun) { 
     document.getElementById('submit').onclick = newFun; 
    } 

</script> 

好運。

0

鑑於此的jsfiddle

http://jsfiddle.net/h_awk/98Gt8/

<input type="radio" name="test" class="test" /> 
<input type="radio" name="test" class="test" /> 

<a id="submit" href="javascript:void(0);">Click Here</a> 

<script> 
    function addEvent(elemClass, elemId, evt, index, cbFunc) 
    { 
     var elemClass = document.getElementsByClassName(elemClass), 
      elemId = document.getElementById(elemId); 

     if(elemClass[index]) 
     { 
      elemId.addEventListener(evt, cbFunc, false); 
     } 
    } 

    function say(msg) 
    { 
     alert(msg); 
    } 

    addEvent('test', 'submit', 'click', 0, function(){say('hello');}); 
    addEvent('test', 'submit', 'click', 1, function(){say('hi');}); 
</script> 

應該工作,但有輕微的問題,鼓泡,我將嘗試修復,當你看到這是如何工作的..

+0

你的代碼似乎對於像我這樣的新手來說太複雜了。但是謝謝你的幫助。 –

+0

我想你是對的嘿.. – Hawk