jquery 已经给文本框绑定了方法,动态的增加了文本框后,为什么新增的文本框没有已经绑定的方法?

$(document).ready(function(){varfocuscss={background:"#FFFF93",border:"#B3BCDDsolid1p... $(document).ready(function() {
var focuscss = {
background : "#FFFF93",
border : "#B3BCDD solid 1px"
};
var blurcss = {
background : "#fff",
border : "#cccccc solid 1px"
}
$(":text").focus(function() {
$(this).css(focuscss);
}).blur(function() {
$(this).css(blurcss);
});
});
给文本框绑定了焦点方法和失去焦点方法,为什么页面上动态添加的文本框没有效果?怎么使新添加的文本框也有同样的方法?
展开
 我来答
drink51
2013-02-21 · TA获得超过297个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:144万
展开全部
这个是一个理论性很强的问题,你还记得jQuery在执行时有个dom初始化吗?很简单,你新增加的文本框没有在执行绑定事件时存在,所以你新增加的文本框不会有你初始化赋予的事件。解决方法是用live绑定事件或者在添加文本时使用clone(true)添加。live和clone你去查查手册,自己动手丰衣足食~
夜翼落雪
2013-02-21 · 超过17用户采纳过TA的回答
知道答主
回答量:86
采纳率:100%
帮助的人:51.7万
展开全部
没有效果是应该的,你的方法是在页面加载时生效。动态加载的方法根本无法检测到,因为它只检测你加载页面时的那些TextBox,所以要有同样的方法,在你新增的TextBox中再加上焦点方法和失去焦点方法也就是onblur和onfocus。
追问
只有这种方法么?你说的这种方法我已经用了,但是感觉很麻烦,要在动态增加text的js代码中添加onblur,obfocus而且还要重新定义相应的方法
追答
那你就把失去焦点和获取焦点的方法再在动态加载textBox后再执行一次。这样吧~你把那个方法放在function aaa(){}  中,然后调用aaa就行了。你试试,应该可行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友59d1d93f2
2013-02-21 · TA获得超过1.2万个赞
知道小有建树答主
回答量:1063
采纳率:100%
帮助的人:687万
展开全部
$(":text").focus(function() {

改成
$(":text").live('focus',function() {

下面的blur也是
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林一夏
2013-02-21 · TA获得超过482个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:467万
展开全部
其实drink51已经说的很清楚了,用live
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式