【问题标题】:How to differentiate a click and button click and non buttonclick using js codecode如何使用js代码区分单击和按钮单击和非按钮单击
【发布时间】:2017-03-21 21:20:16
【问题描述】:

我有一个网页,其中电话号码和拨号按钮似乎位于表格的同一个单元格中。单击拨号按钮时,我应该在同一单元格中检索电话号码。该表已动态填充,并且在 onclick 上将其传递给 javascript 只是在 js 中变为 null 。所以我尝试了以下代码而不是 onclick 按钮。以下 js 代码工作正常,但它正在执行单击单元格上的任何位置,而不仅仅是按钮。我想将单击限制为按钮单击。有没有办法区分它?我不能使用 jquery,只想要 javascript 解决方案,因为我们的应用程序很旧。

</script>
<script language="javascript">
var tbl = document.getElementById("myTable1");
if (tbl != null) {
    for (var i = 0; i < tbl.rows.length; i++) {
        tbl.rows[i].cells[0].onclick = function() {
            var x = this.cells.item(0).innerHTML;
            alert(x);
            var res = x.substr(0, 10);
            alert(res);
            makeCalltoPatient(res);
        }
    }
}
</script>
<script language="javascript">

html代码

 <c:forEach items="${contactInfoTabl}" var="element"
                            varStatus="status">
                            <tr id="somerow">
                               <td style="text-align: left" class="ValCntr" id="mytd">
                                  <c:out value="${element.number}" />
                                  <input type="button" class="otherButton" value="Dial" />
                               </td>

【问题讨论】:

  • 你能添加一小块相关的 HTML 吗?

标签: javascript


【解决方案1】:
tbl.rows[i].cells[0].onclick = function(e) {
    if (e.target.tagName == 'BUTTON') { ...

【讨论】:

  • 感谢您的回复,但我收到类似“无法获取未定义或空引用的属性'目标'”我的 html 代码
  • 确保在函数参数中包含“e”为function(e)
  • 是的,我做到了。我正在使用 IE 11,我知道 IE 不支持 target 属性,我也尝试使用 srcElement ,不知何故 e 为 null 。
  • IE11 像你一样支持 e.target 和 onclick 绑定,你可以通过在 F12 开发者控制台中输入这个来轻松测试它:$('body').html('&lt;div id="test"&gt;&lt;button&gt;test&lt;/button&gt;&lt;/div&gt;'); document.getElementById('test').onclick=function(e){console.log(e.target);}
  • 在所有其他代码包含此行之前在您的函数中:var ev = e ? e : window.event;,然后使用ev 变量来尊重当前事件对象。
猜你喜欢
相关资源
最近更新 更多
热门标签