-3

我无法在我的 Facebook 表单上的任何浏览器中使用.change().click()或触发器。.keydown()

-- EDIT --- 问题是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
            });
4

2 回答 2

2

当您单击“请求帐户”按钮时,您会复制文档中已经存在的表单并显示它。

复制表单时,您会使用其当前的内联样式(黄色),但不会使用事件处理程序。

如果更改#req_acctdisplay: block,您可以看到原始表格并看到颜色变化。

于 2013-05-06T19:42:32.247 回答
-1

我怀疑你没有点击你真正想要的元素。这可能是因为你的页面上有一些 CSS 重叠了两个不同的元素。(绝对定位或其他东西,我对 CSS 不太了解)

您可以使用以下方法进行检查:

$('*').click(function(){
    console.log($(this).prop('id'));
});

然后点击你的文本框,看看你得到的ID是否正确。如果加载了 jquery(正如您所证明的那样),这肯定可以工作。!

编辑:

如果 .prop 不起作用,您可能使用的是旧版本的 Jquery。您需要使用 attr 代替 prop。所以请更换

$(this).prop('id')

$(this).attr('id')
于 2013-05-06T19:03:18.953 回答