JQuery焦点不工作通过新的1.7.1 .on()方法为Ajax返回HTML
问题描述:
好吧,我对这个墙上,所以任何帮助非常感激。JQuery焦点不工作通过新的1.7.1 .on()方法为Ajax返回HTML
我有一个HTML输入字段:
(ID为:#data_input
),这是通过Ajax调用返回。
然后我检查表格是否在#data_input
字段提交输入。
(注意:我在的jQuery V1.7.1)
如果不输入任何更改字段的CSS通过它突出红色:
$('#data_input').css('background-color','red')
和工作正常所以我可以瞄准它。但是,我再碰上一个问题,当我试图撤消当用户通过进入该领域的红色背景:
$('#data_input').on('focus', function(){$(this).css('background-color','white')});
,但我什么也没得到,任何想法?
.live()
和.focus()
也不要工作:(
答
编辑:更新到在动态元素上使用.on。
相同的情况下对我的作品。请参见DEMO这里的代码如下,
HTML:
<div id="result" ></div>
JS:
$('#result').on ('focus', '#input_field', function() {
$(this).css ('background-color', 'white');
});
$('#result').on ('click', '#submit', function() {
if ($('#input_field').text() == '') {
$('#input_field').css ('background-color', 'red');
}
});
//added to dom after the binding. see above code.
$('#result').append('<input type="text" value="" id="input_field" />' +
'<input type="button" value="Submit" id="submit" />');
答
- 看看你写了野外工作的代码不是由AJAX返回。
- 我假设你已经检查,以确保重点函数被调用。在所有
- 尝试一个onchange处理器
- 通过.addClass()
- 需求你的钱回来试试你的CSS。)
- Try .focus(function(){});
答
试试这个:
$(document).on('focus', '#data_input', function(){$(this).css('background-color','white')});
你是说'.css()'调用成功_after_字段是通过ajax加载?如果您已将'.on()'调用放入ajax的成功回调函数中,它应该可以正常工作。在焦点函数中尝试'console.log()'而不是设置css,以确认函数是否被调用。并且请多显示一下你的代码,特别是你已经显示的行的上下文。 – nnnnnn 2012-01-07 01:44:56