编写javascript检测li中的点击事件

Posted

技术标签:

【中文标题】编写javascript检测li中的点击事件【英文标题】:Write javascript to detect click event in li 【发布时间】:2017-11-30 07:23:18 【问题描述】:

我有这样的东西。这段代码来自某个网​​站,我没有修改该代码的权限。

<li class="History_lisitem_logout ui-last-child" data-icon="power">
                        <a id="History_lisitem_logout" name="lisitem_logout" dsid="lisitem_logout" tabindex="2" class="History_lisitem_logout ui-btn ui-btn-icon-right ui-icon-power">
                        <h3>Sign Out</h3>
                        </a>
                    </li>

我需要从我的 iosandroid 应用程序调用该网站,如果用户单击该 li,我需要触发我自己的本机代码。

如果是普通按钮,我可以很容易地这样做来调用我的本机代码。

        webView.stringByEvaluatingjavascript(from: "$(document).on('touchstart', '#History_lisitem_logout', function() window.location = 'ios:logoutGleer';);")

但是,问题是我在“li”中没有“id”,并且我无法注入我的 javascript 代码来检测单击“li”的事件。我该怎么办?

【问题讨论】:

【参考方案1】:

锚标签有id;好好利用吧。

let listEl = document.getElementById("History_lisitem_logout").parentElement

【讨论】:

谢谢。得到 listEl 后,我该如何调用 window.location ?对不起,我不太擅长这个。 window.location 通常用于导航到特定网站;例如,如果您打开浏览器控制台并输入,window.location = "google.co.in" ;结束点击进入您的浏览器将带您到谷歌 是的。我需要为 listEl 触发 onclick。当它被点击时,我需要调用 window.location。 window.location 到哪里? 这样的。 window.location = 'ios:logoutGleer' 。它将帮助我调用我的本地 ios 代码。

以上是关于编写javascript检测li中的点击事件的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 事件点击触发了两次

javascript,有很多个li,给每个li写同一个单击事件,怎么让它实现点击其中一个li,弹出对应的innerHTML.

Javascript事件 - 检测点击链接

Javascript中的事件委托(事件代理)

为啥点击事件不适用于 iOS 上的 li 元素?

Javascript检测div之外的点击事件