我有一个简单的问题。以下代码适用于所有标记:
$('*').click(function(e) {
alert(1);
});
但是,当我尝试使用id为“content”的div的代码时:
$('#content').click(function(e) {
alert(1);
});
我做错了什么?
答案 0 :(得分:47)
确保它位于文档就绪标记内。或者,尝试使用.live
$(document).ready(function(){
$('#content').live('click', function(e) {
alert(1);
});
});
示例:
$(document).ready(function() {
$('#content').click(function(e) {
alert(1);
});
});
#content {
padding: 20px;
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="content">Hello world</div>
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。
$('#content').on( "click", function() {
alert(1);
});
答案 1 :(得分:9)
没有
$('#content').click(function(e) {
alert(1);
});
将绑定到ID为content
的现有 HTML元素,并在点击时显示一个消息框。
#content
存在答案 2 :(得分:1)
附加此事件后,是否可以创建id =“content”的div?你可以试试live()jquery方法。
否则,可能有多个具有相同ID的div或者您拼写错误,它会发生......
答案 3 :(得分:1)
以$(document).ready()
方法或$()
。
$(function(){
$('#content').click(function(e) {
alert(1);
});
});
答案 4 :(得分:0)
查看此fiddle ...您正确地执行了此操作。确保id是内容,并检查是否没有其他具有相同ID的元素。如果有多个元素具有相同的id,它将绑定到第一个元素。这可能就是你没有看到它的原因。
答案 5 :(得分:0)
JS
<script
src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#div1").on('click', function(){
console.log("click!!!");
});
});
</script>
HTML
<div id="div1">div!</div>