2016-06-09 93 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')");