通过id获取元素无效
Get element by id not working
我试图让我的谷歌地图显示几个位置,但如下所示的onclick没有得到我的功能b.我做错了什么?由于
Javascriptfunction b(){
dlat=40.856771;
dlng=0.578294;
alert(dlat);
getLoc();
}
function init() {
document.getElementById("click").onclick = b;
}
window.onload = init
HTML <ul data-role="listview" data-split-icon="star" data-split-theme="a">
<li><a href="#1"><h1>task1</h1></a><a href="#popup" id="click" data-rel="popup" data-position-to="window" data-transition="fade"> </a></li>
</ul>
<div data-role="popup" id="popup" data-overlay-theme="a" data-theme="a" data-corners="false" data-tolerance="15,15">
<a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete">Close</a>
<iframe src="map.html" width="320" height="320" seamless></iframe>
</div>
事件委托可以解决您的问题,而无需查看整个情况。根据我所拥有的最小信息,我得到了使用事件委托工作的函数调用:http://jsfiddle.net/uufS3/1/
document.getElementById("container").addEventListener("click", b, false);
function b(){
dlat=40.856771;
dlng=0.578294;
alert(dlat);
getLoc();
}
当然,这意味着您需要在页面上有某种预先存在的元素。我添加了一个容器div,但它可以是(可能应该是)body标签本身。
如果这是一个大型应用程序,这个解决方案也可以帮助内存泄漏。
如果你的应用/站点需要支持旧的IE版本,除了addEventListener之外,还可以看看这样的东西。
必须有init函数吗?它的功能是否比你列出的更多?如果没有,我建议放弃它,因为它对解决这个特定问题没有必要。看起来像窗户。onload在你的情况下是不必要的,除非(像我说的)该函数做其他未列出的事情。
UPDATE这里是关于如何在事件委托中使用逻辑的更多信息…假设您最终将其附加到body标记上,则需要过滤单击。
相关文章:
- ReactJS - 元素类型无效错误
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- 未捕获错误:不变冲突:元素类型无效:应为字符串
- 未捕获的不变冲突:元素类型无效(react、webpack、循环导入)
- addClass”;输入无效”;输入dos't显示,直到我在输入元素外部单击为止
- React:未捕获的不变量冲突:ReactDOM.render():无效的组件元素
- ReactJS的dropzone元素无效
- 函数调用者无效元素
- 未捕获的语法错误:无法在“元素”上设置“innerHTML”属性:提供的标记是无效的 XML
- 脚本 600:此操作的目标元素无效.(仅限 IE)
- TinyMCE没有阻止无效元素
- 显示:元素的none/block在Firefox中有效,在Safari或Chrome中无效
- 反应.js - “不变冲突:元素类型无效:预期字符串”简单按钮
- jQuery validate-更改无效元素的css
- 将脚本元素插入浏览器操作页无效
- 未捕获的错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数,但得到:对象
- Getting Invariant违规:使用createBrowserHistory时元素类型无效react-route
- 如何根据元素数组中的DOM位置聚焦无效元素
- 验证-更改无效元素的父元素的背景颜色
- 无法对无效元素执行操作:UIAElementNil