在 DOM 中“隐藏”JavaScript 事件
"Hiding" javascript events in DOM
我正在开发一个自定义排序过程,我经常使用 AJAX 请求和动态表单来完成部分排序过程,但我想将我这样做的方式清理为 HTML。我也在使用jQuery。
在查看像Google的文字处理器这样的应用程序时,我可以看到DOM和源代码都没有javascript事件属性。例如:
<div id="docs-file-menu" role="menuitem" class="menu-button goog-control goog-inline-block" aria-disabled="false" aria-expanded="false" aria-haspopup="true" style="-webkit-user-select: none;">File</div>
我的猜测是脚本在事后根据HTML属性注册Javascript事件。
我的网站要简单得多,但我想知道如何解决这个问题,因为我目前有按钮样式的<a><img></a>
标签(或类似(调用 Javascript 函数,效果很好,但似乎是较少(和老派(的方法。例如:
<a href="javascript:Customisation.beginNewPair()">
<img src="images/begin-new.gif" />
</a>
下面是一个关于如何使用数据属性和点击时的事件监听器的简单示例:
var a = document.getElementById('docs-file-menu');
a.addEventListener('click', test);
function test () {
var dis = a.getAttribute('aria-disabled');
var exp = a.getAttribute('aria-expanded');
var has = a.getAttribute('aria-haspopup');
if (dis == 'true') {
alert('disabled = true');
}
if (exp == 'true') {
alert('expanded = true');
}
if (has == 'true') {
alert('haspopup = true');
}
}
您还可以在页面加载时访问不同的数据属性,并且根据它们,您可以运行不同的函数。
这是一个带有点击事件的简单演示,只需单击文件
你想要的是addEventListener
。
您如何访问元素是另一个问题,但假设您希望每次有人单击框时收到警报。
var box = document.getElementById('box');
box.addEventListener('click', function(){ alert(); });
<div id="box" style="width:150px;height:150px;background:blue;"></div>
你也可以把发生的情况放在一个实际函数中:
function doSomething(){
alert();
}
var box = document.getElementById('box');
box.addEventListener('click', doSomething);
<div id="box" style="width:150px;height:150px;background:blue;"></div>
相关文章:
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 在同一个javascript事件处理程序中调用不同的函数
- Javascript事件;在新选项卡中打开”;
- 存在每个时间元素的javascript事件
- Javascript事件.锚的目标问题
- 带有参数的Javascript事件处理程序
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- firefox中的Javascript事件范围问题
- Firefox中的JavaScript事件参数
- 在动态加载的PHP表单上放置JavaScript事件
- 如何在Javascript事件上从JSNI设置GWTClass字段
- Javascript事件发射器一次处理多个事件
- 在下拉式javascript事件监听器中选择时触发事件
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- 显示触发的JavaScript事件
- 正在取消IE11中的JavaScript事件
- 页面卸载期间的JavaScript事件循环
- 存在其他参数时访问Javascript事件
- 阻止Javascript事件影响子元素
- 如何在事件处理程序中获取 javascript 事件对象