2013-08-07 88 views
0

我可以對點擊html按鈕設置動作。但我只需要在第一次點擊時設置操作。有沒有辦法做到這一點?按鈕是無線電的形式。一些JavaScript可能?僅在第一次點擊時纔有Html按鈕動作

什麼是重要的 - 單選按鈕仍可能會改變。但行動只能做一次。

這不起作用

function myfunction(i){ 
oForm = document.forms["myform"]; 
if(oForm.elements["field"+i].checked) 
    alert("action done earlier"); 
else 
    action 
} 
+0

您可以使用布爾值或removeEventListener。 –

回答

2

的乾淨的解決方案可能是使用removeEventListener來...移除事件監聽器:

var myButton = document.getElementById('someId'); 
var handler = function(){ 
    // doSomething 
    myButton.removeEventListener('click',handler); 
} 
myButton.addEventListener('click', handler); 

(使它更清潔,你可以在IIFE把這個包,如下面的例子)

Demonstration

0

如果preffer jQuery的,你可以使用jQuery拆散

$("button").click(function(){ 
    /* some content */ 
    $(this).unbind('click'); 
}); 

的Html

<button> Some content </button> 
+3

在這個問題中沒有jQuery。 –

+0

好的,對不起。但它的工作。 – M1K1O

0

你可以使用屬性一旦被點擊禁用按鈕,添加

disabled="disabled" 

一旦點擊按鈕?

+0

但是我想改變這個值。所以按鈕不能被禁用。只有一次行動。 – bartektartanus

+1

好,所以我猜Javascript的答案會更適合你 – Marcandria

0

要解決此問題,我已經使用jQuery.on以及jQuery.off - 請參閱jsfiddle上的代碼!

$(document).ready(function() { 
    var button = $('#my-button'); 

    function onClick() { 
     alert('clicked'); 
     button.off('click', onClick); 
    }; 

    button.on('click', onClick); 
}); 

http://jsfiddle.net/VxRyn/

+0

這需要jQuery,OP沒有提及。 –

1

退房jQuery的.one()事件處理程序。

$("#my-button").one('click', function() { 
    /* Do something at most once */ 
}); 
相關問題