Javascript Mozilla中未调用Div onclick事件
我的代码中有:Javascript Mozilla中未调用Div onclick事件,javascript,jquery,Javascript,Jquery,我的代码中有: <div class="someClass"> <div id="22" class="otherClass" onclick="goToEdit();">Title</div> <div class="parent">Other title</div> </div> 在Chrome中,一切正常,但在Mozilla中,它不会对点击事件做出反应。为什么?HTML名称和id标记必须以字母开头。您
<div class="someClass">
<div id="22" class="otherClass" onclick="goToEdit();">Title</div>
<div class="parent">Other title</div>
</div>
在Chrome中,一切正常,但在Mozilla中,它不会对点击事件做出反应。为什么?HTML名称和id标记必须以字母开头。您有
id=“22”
。也许这会导致浏览器之间的不一致。请参阅:按定义div用于将页面划分为不同的部分。
改为使用锚定或带有类型按钮标记的输入尝试将对元素的引用传递给函数
... onclick="goToEdit(this);">
及
编辑:
我得到一个错误,事件未定义
Doh我们都应该意识到
问题是,event
在大多数浏览器上都不是全局的,尽管它在IE上是全局的,Chrome通过使它成为全局的以及做它应该做的事情(将它传递到事件处理函数中)为IE设计的站点投下了骨头
到目前为止,最好不要使用onclick=“code”
(见下文),但您也可以这样做:
<div id="22" class="otherClass" onclick="goToEdit(event);">Title</div>
JavaScript:
$("#d22").click(goToEdit);
function goToEdit(event) {
tree.selectItem(event.target.id.substring(1));
btnMyButton_onclick();
}
注:
- 在传递之前,我将
从d
值的开头剥离。我想那是因为某种原因id
- 没有理由执行
,只需直接使用$(event.target.attr('id')
event.target.id
- 如果
可能包含其他元素(div
s、span
s、em
s等),请注意p
可能不是event.target
,它可能是div
的后代元素div
将始终是这个
,但是(jQuery会注意到这一点),因此:div
- 我认为,您可以从html中删除“onclick”
<div class="someClass">
<div id="22" class="otherClass">Title</div>
<div class="parent">Other title</div>
</div>
但是如果您的div id=“22”将被动态添加,那么您应该使用如下内容
$('#22').on('click', function (e) {
your code
});
$('parent').on('click', '#22', function (e) {
your code
});
where'parent'-静态元素在单击之前已经存在于文档中,我也面临同样的问题,但这段代码帮助了我 我在Mozilla Firefox和Chrome上进行测试,这两种浏览器都可以使用
<input type="button" onclick="return goBack();" class="btn btn-warning cancel" value=" Cancel" style="color:white" />
<script>
function goBack() {
window.history.back();
}
</script>
函数goBack(){
window.history.back();
}
您如何知道该事件未在Firefox(Mozilla)中触发?尝试在函数goToEdit()中放入一个alert(),什么是树
?它是否引用了window.tree
,后者又引用了ID为tree
的元素?如果是,Firefox不会在全局范围内为具有ID的元素创建符号。您必须使用document.getElementById
@Sparky:或者更好,使用适当的调试器(Firefox现在内置了一个调试器,或者当然有Firebug)和一个断点。@FelixKling不,它是dhtmlx树。我得到的错误是没有定义事件。@T.J.Crowder我得到的错误是没有定义事件。是和否:-)从HTML5开始,这个ID就是,这里的规范只是记录现有的行为(浏览器对document.getElementById(“22”)
)。CSS仍然需要它……我很高兴看到我尝试过的所有浏览器(Chrome、Firefox、Opera、IE9)在标准模式下正确地在document.querySelector(“22”)
上抛出了一个错误;Chrome和Firefox在quirks模式下也会抛出一个错误,而Opera容忍无效的CSSid
,IE9报告说它根本没有querySelector
。因此,它将取决于tree.selectItem
的作用以及它是否在DOM选择中使用该id
值。测试:|谢谢Rick,它帮助了我!
<div class="someClass">
<div id="22" class="otherClass">Title</div>
<div class="parent">Other title</div>
</div>
$('#22').on('click', function (e) {
your code
});
$('parent').on('click', '#22', function (e) {
your code
});
<input type="button" onclick="return goBack();" class="btn btn-warning cancel" value=" Cancel" style="color:white" />
<script>
function goBack() {
window.history.back();
}
</script>