jquery用append语句加入一个div之后,再用语句操作加入后的div没反应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery用append语句加入一个div之后,再用语句操作加入后的div没反应相关的知识,希望对你有一定的参考价值。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style type="text/css">
.largeImg
display:none;
</style>
</head>
<body>
<script type="text/javascript" src="jquery.1.4.4.min.js" ></script>
<script type="text/javascript">
$(function()
$(".central img").click(function()
var largeImg = "<div class='largeImg'><img src='"+this.src+"' alt='"+this.title+"'/></div>"
$("body").append(largeImg);
$(".largeImg")
.css("border":"1px solid #f80"
).fadeIn("slow");
);
$(".largeImg").click(function()
alert('作死的节奏啊!')
);
)
</script>
<div class="central">
<p>公司有着丰富多彩的健康休闲文化,为员工免费提供篮球场、排球场、羽毛球场、乒乓球室、桌球室等活动场所,有专业教练培训指导,并定期开展多种文体娱乐活动,给员工充分展示自己的舞台 …… </p>
<p>
<img border="0" title="尼玛!" width="175" height="116" src="http://www.glzmn.com/pictures/exercise/IMG_3836.jpg">
<img border="0" alt="" width="175" height="116" src="http://www.glzmn.com/pictures/exercise/IMG_3944.jpg">
<img border="0" alt="" width="175" height="116" src="http://www.glzmn.com/pictures/exercise/IMG_1334.jpg">
</p>
</div>
</body>
</html>
如上代码,加入.largeImg的时候一切正常,但是后边这条语句始终不能执行,是怎么回事?
$(".largeImg").click(function()
alert('作死的节奏啊!')
);
你这个click语句,是肯定不会执行的。因为你这个元素是后来添加的,而click事件的注册,在页面加载时就已经完成了(而此时还没有这个.largeImg元素)
解决方法:把事件注册到document上面。这样当执行事件时,会冒泡触发。
代码:
$(".largeImg").live("click",function()alert('作死的节奏啊!');
); 参考技术A
语法错误。
);$(".largeImg").click(function()
alert('作死的节奏啊!')
);
改成
$(".largeImg").click(function()alert('作死的节奏啊!')
);
);
你把后面的事件绑定,放到上面click的外面了,绑定的时候,这个元素还不存在。
alert('作死的节奏啊!')
)
就可以了
jquery Append() 中的 if 语句
【中文标题】jquery Append() 中的 if 语句【英文标题】:If-statement inside jquery Append() 【发布时间】:2012-10-05 14:10:48 【问题描述】:在我的 jquery Append() 中,我不想运行 IF 语句来在我的所有对象上包含图像,除了第一个对象。
喜欢:
var i = 0;
$('#divDetailsForSelectedInfo').append(
'<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">'+
'<div class="leftResultObject_inner">' +
if (i > 0)
<img src="/img.jpg"/>;
'<div>asdf</div>');
代码由 Json+Jquery 生成,然后全部附加到我的索引文件中的一个 div 上。 据我通过即时 google 得知,这是无法做到的,但我可能错了?
如果确实“不可能”,Jquery 中的 :first 选择器可以以某种很酷的方式使用吗?
【问题讨论】:
等等:你在哪里增加i
,为什么基于id
的选择器会返回多个元素?
【参考方案1】:
一个更简单的解决方案:
var i = 0;
$('#somediv').append(
'html before' +
(i > 0 ? '<img src="/img.jpg"/>': '') +
'more html'
);
【讨论】:
【参考方案2】:var i = 0;
var str=''
if (i > 0)
str = '<img src="/img.jpg"/>;'
$('#divDetailsForSelectedInfo').append(
'<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">'+
'<div class="leftResultObject_inner">' +str+'<div>asdf</div>');
【讨论】:
【参考方案3】:我能想到的最简单的方法:
$('#divDetailsForSelectedInfo').append(
function(i)
return '<div class="roundedAndBoxShade leftResultObject" id = "' + value.Query.Id + '">' + '<div class="leftResultObject_inner">' + (i > 0 ? '<img src="/img.jpg"/>' : '');
);
JS Fiddle proof-of-concept.
【讨论】:
以上是关于jquery用append语句加入一个div之后,再用语句操作加入后的div没反应的主要内容,如果未能解决你的问题,请参考以下文章