我无法在我的facebox表单上的任何浏览器中使用.change()
,.click()
或.keydown()
触发器。
- 编辑--- 问题是facebox CLONES html在对话框元素中显示它。因此,jquery选择器工作,但事件触发器不工作(基于重复)。修复方法是修改facebox并删除.clone()行为。
- 结束编辑 -
以下适用于文档准备工作:
$('input#testE').css('background-color', 'red');
其中#testE是文本输入。加载时,文本框背景为红色。然而...
$('input#testE').keydown(function() {
$('input#testE').css('background-color', 'red');
});
不会触发。我还尝试了.change()
和.click()
。它也不会打印到控制台进行测试。我的代码在jsFiddle中运行正常,但在我的环境中不起作用。有什么想法吗?
...编辑
澄清文件准备问题:
$(document).ready(function() { //on document load
console.log('test'); // this works
$('input#testE').keydown(function() { //won't fire
$('input#testE').css('background-color', 'red');
});
$('input#testE').css('background-color', 'blue'); //works
});
答案 0 :(得分:2)
单击“请求帐户”按钮后,您可以复制文档中已存在的表单并显示它。
复制表单时,使用它的当前内联样式(黄色),但不要使用事件处理程序。
如果您将#req_acct
更改为display: block
,则可以看到原始表单并查看颜色更改。
答案 1 :(得分:-1)
我怀疑你没有点击你想要的元素.. 这可能是由于你的页面上有一些css重叠了两个不同的元素。(绝对定位或其他东西,我对CSS不太了解)
您可以使用以下方法检查:
$('*').click(function(){
console.log($(this).prop('id'));
});
然后点击您的文本框,看看您获得的ID是否正确。如果加载了jquery(正如你所证明的那样),这绝对有效。
修改强>
如果.prop不起作用,您可能拥有旧版本的Jquery。您需要使用attr代替道具。所以请更换
$(this).prop('id')
与
$(this).attr('id')