当文本字段的状态集中时,我需要触发一些操作。
如果textfield是标准的内联元素,则此代码可以正常工作(测试)。 但如果文本字段位于模态窗口内,则无效。我想在加载jquery库时隐藏了模态窗口,然后是问题。
我怎样才能使这个工作?
$('#name').focus(function() {
console.log('do something');
});
答案 0 :(得分:1)
我想在jQuery时隐藏了模态窗口 加载库然后问题。
你猜对了,可能是你在某个事件之后加载模态对话框的内容。
现在代码:
$('#name').focus(function() {
console.log('do something');
});
可能附加到$(document).ready()事件,该事件在每次加载新文档时触发但在ajax调用完成时不会触发
要解决此问题,您需要为将运行所需功能的对话框的加载事件附加委托。 请参阅API或LIVE,具体取决于您的jQuery版本http://api.jquery.com/on/
如果您愿意,您可以为每个点击事件使用通用委托,并在每次点击后尝试附加您的焦点事件:
$(document).on("click", "#name", function() {
$(this).focus(function() {
console.log('do something');
});
});
这将尝试在每次单击后将焦点函数附加到#name元素,即#name元素是否存在。