2016-06-09 147 views
3

我有這樣的事情:更改的onClick函數參數動態

<button id="button1" onClick="someFunc('arg1','arg2')"> </button> 

是否有可能在JavaScript改變功能someFunc的參數看起來像下面:

<button id="button1" onClick="someFunc('somethingDiff1','somethingDiff2')"> </button> 
+2

因此將一個需要onclick方法分配給它並刪除舊的。 – epascarello

+3

或使用變量並設置它們代替 – LordNeo

+0

@epascarello似乎是一種好方法。你可以提供一個例子 – QGA

回答

1

如果你在jQuery的希望那麼如果你在JavaScript中要那麼試試這個試試這個

$(document).ready(function(){ 
 
    var clickfun = $("#button1").attr("onClick"); 
 
    var funname = clickfun.substring(0,clickfun.indexOf("("));  
 
    $("#button1").attr("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')"); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="button1" onClick="someFunc('arg1','arg2')">Button1</button>

試試這個

: -

<script> 
    window.onload=function(){ 
    var clickfun = document.getElementById("button1").getAttribute("onclick"); 
    var funname = clickfun.substring(0,clickfun.indexOf("("));  
    document.getElementById("button1").setAttribute("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')");  
}; 
</script> 

希望這會幫助你。

+0

點擊按鈕後, someFunc is not defined' –

+1

非常容易....我只是''('...')。attr(「onclick」,「someFunc('something1','something2')」);' – QGA

1

你可以只是去你的script.js和類似的東西:

var value = 10 

$("#button1").click(function() { 

if(value < 5) 
    someFunc("arg1"); 
else someFunc("arg2); 

}); 
3

這也可以通過寫類似的東西,以這個來完成:

document.getElementById('button1').setAttribute('onclick','thiswhatyouwanttohave'); 

但文件必須滿載,或至少按鈕必須存在於能夠訪問onclick屬性。

+0

謝謝。我已經嘗試了一些問題。該按鈕位於動態生成的表格中。 – QGA

+0

確定只是用它包裝:window.onload = function(){},以確保它是可訪問的,如果它工作正常也可以:)如果這可能會幫助您也可以動態設置onload屬性 – prizm1

1

根據您的要求,我們可以更改如下參數:檢查這個工作小提琴。

https://jsfiddle.net/TaEgQ/42/

button.setAttribute("onClick", "someFunc('new1','new2')");