![](/img/trans.png)
[英]pass a parameter in setAttribute "onclick" function argument in javascript
[英]Pass a JavaScript function as parameter within an onclick attribute
编辑:原来这是一个奇怪的问题,我不知道发生了什么。 这个HTML怎么能
<div class="col-lg-6">
Find:
<textarea id="replace" rows="5" cols="1">to replace</textarea>
</div>
使此代码失败?
<script type="text/javascript">
function go(transform_function) {
alert('go');
transform_function('test');
}
function replace(output) {
alert('rep');
}
</script>
更换
奇怪的小提琴
是的Javascript函数只是对象,就像其他任何对象一样,您可以在函数内将函数作为参数传递。 这是非常正常且经常使用的做法。
<button onclick="addContact('1', refreshContactList);">Go</button>
<script type="text/javascript">
function addContact(id, callback) {
console.log(id);
callback();
// You can also pass arguments if you need to
// refreshCallback(id);
};
function refreshContactList() {
console.log('Callback Achieved');
};
</script>
更新的答案
问题是您有一个表单元素ID,该ID与您要调用的函数使用了相同的名称,并且导致页面上的引用冲突。 在表单元素ID的末尾添加ID之类的内容,以消除冲突或将函数名更改为更具描述性的内容,如Replacer。
更详细的答案,这是怎么回事,可以发现这个其他堆栈溢出问题。
之所以refreshContactList
是因为您将来自refreshContactList
按钮的字符串存储到名为refreshCallback
的变量中。 被调用的refreshCallback()
函数在幕后制作为refreshContactList()
。 也就是说,这太复杂了!
参考这个小提琴 。 调用addContact()
函数,并传递该函数的id
。 然后,调用refreshContactList()
函数,并传递id
。 refreshCallBack()
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.