如何使用javascript更改onclick?

时间:2017-03-16 02:35:42

标签: javascript javascript-events onclick

如何使用javascript更改onclick?

https://jsfiddle.net/749rt0m7/1/

我尝试使用此代码,但无法正常工作。我该怎么办?

    <span  onclick="test_fn('aaa,bbb')" id="xx">edit</span>
    <script>
        document.getElementById('xx').onclick = "test_fn(111,222)";
    </script>

4 个答案:

答案 0 :(得分:7)

这里有几件事情。

首先,test_fn()不是jsfiddle中的函数。您需要定义它以便调用它。

其次,您将onclick属性设置为字符串而不是函数。您必须使用以下代码将其设置为函数。

document.getElementById('xx').onclick = function() { test_fn(111,222) };

以下是working jsfiddle.

的示例

<强>更新

看起来我误解了这个问题。如果您确实想要更改onclick属性,请更改HTML显示的内容,您将需要使用setAttribute()。所以你的代码将是......

document.getElementById('xx').setAttribute( "onClick", "test_fn('111,222')" );

以下是updated jsfiddle

作为旁注,就像nnnnnn在原帖的评论中所说的那样,使用它时,你通过函数传递1个参数,这个函数似乎是你想要的字符串111,222通过两个。如果您希望将111作为第一个参数并将222作为第二个参数传递,则可以使用test_fn(111,222)(将参数作为整数传递)或{{1}调用该函数(将参数作为字符串传递)

答案 1 :(得分:0)

您需要将onclick设置为运行代码test_fn('111,222')的函数:

<script>
  document.getElementById('xx').onclick = function() { test_fn('111,222'); }
</script>

答案 2 :(得分:0)

document.getElementById('xx').onclick = function() {
  test_fn(111, 222);
};

在HTML中设置onclick时,请使用字符串。通过JS设置时,请使用函数。

答案 3 :(得分:0)

我看不到你在哪里定义函数self.automaticallyAdjustsScrollViewInsets = false 你在html和js中将函数挂钩到元素test_fn两次..只需要一个,你需要实际定义函数

onclick

现在你需要定义 <span id="xx">edit</span> <!-- or .. not both , they are doing pretty much the same thing--> <script> document.getElementById('xx').onclick = function(){ console.log('clicked') } </script> 点击元素

时会调用它
test_fn

请注意,html function test_fn(arg1 , arg2){ condole.log(arg1 , arg2) } 版本传递一个参数,而js脚本版本传递两个参数。