向动态添加的元素上绑定事件

用jquery向html中动态添加input,然后希望给这些input绑定keyup事件,在input中输入的同时同步更新页面上的文字内容。


开始用的是,其中business logic比较旧,与后面的代码不一致。

//Related to content
		//Real time update of content
		$('.text-content').keyup(function(){
			if(textElement !== null){
				if($('#text-effect').val() === null || $('#text-effect').val() === 'plain'){					
					textElement.text($(this).val()); 
				}
				else{	
					var svg = getTextEffect(createUrl());	
					refreshText(svg, GTYPE);
				}
			}
		});

最初以为keyup只能用在id上,不能用在class上。后来发现不是这样。没反应是因为这些input是动态生成的,jquery不能动态把这些事件绑定到新生成的元素上。具体解释见:

http://www.cnblogs.com/wmmang-blog/archive/2013/03/13/2818092.html

http://stackoverflow.com/a/12830014/2177408


所以改用on。具体代码如下:

$('.text-editor-wrapper').on('keyup', '.text-content', function(){
			var index = $(this).parent().find('.text-index').text() - 1,
				textElement = textList[index];

			if($(textElement).prop('tagName') === 'textPath' || $(textElement).prop('tagName') === 'tspan'){
				$(textElement).text($(this).val());
			}
			else{
				textElement.nodeValue = $(this).val();
			}
		});




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值