如何从DOM获取元素并设置onclick事件?

时间:2018-05-22 06:25:35

标签: javascript jquery html

我有这个html元素:

<table id="miniToolbar">
     <tbody>          
        <tr><td>
          <button id="btnStrView" type="button" onclick='parent.ExecuteCommand()' class="button_air-medium">
            <img id="streetView" class="miniToolbarContant" src="../stdicons/streetview-icon.png"></button>
          </td></tr> 
    <tbody>
</table>     

正如您在Click事件中看到的内部按钮:

onclick='parent.ExecuteCommand()'

我有这个JS功能:

function isMenuItemMasked(item)
{
    var funcId = '75';

     var elem = document.getElementById('btnStrView');

    return false;
}

你可以看到里面的函数我有一个名为funcId的变量。

我需要将此funcId放入点击事件:

onclick='parent.ExecuteCommand('75')'

获取元素并将其放入elem变量后,如何将funcId作为参数添加到parent.ExecuteCommand()

2 个答案:

答案 0 :(得分:2)

我认为你想动态设置函数参数。不使用外部库我会这样做:

function runSubmit() {
  var value = document.getElementById("text").value;
  document.getElementById("run").addEventListener('click', function() {
    func(value);
  });
}

function func(value) {
  console.log(value);
}
<input id="text" type="text">
<input type="submit" value="Setup Param" onclick="runSubmit()">
<input id="run" type="submit" value="Run with param">

如何使用此功能:运行代码段时,您会看到一个文本输入,一个Setup Param按钮和一个Run with param按钮。在文本输入中插入一些内容,然后单击“设置参数”。之后,单击Run with param以查看效果

输入文本包含将用作func(value)参数的字符串。 #run按钮回调的更新由“设置参数”通过runSubmit()回调触发。此回调向#run元素添加了'click'事件的侦听器,该事件在事件发生时运行具有固定参数的函数。

这只是一个MCVE,您应该根据自己的情况进行调整。

嗯......实际上@jacob-goh在写这篇文章的时候给了你这个确切的解决方案......

答案 1 :(得分:0)

你可以使用jquery从函数内部调用函数并将你的变量传递给该函数。

function isMenuItemMasked(item)
{
 var funcId = "75";

$(document).ready(function(){
$("#btnStrView").click(function(){
   parent.ExecuteCommand(funcId);
 });
});
}
function ExecuteCommand(your_var){
    alert(your_var);
    //your code
    }