Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery更改使用jquery创建的元素的背景_Javascript_Jquery_Css_Background_Jquery Hover - Fatal编程技术网

Javascript 使用jquery更改使用jquery创建的元素的背景

Javascript 使用jquery更改使用jquery创建的元素的背景,javascript,jquery,css,background,jquery-hover,Javascript,Jquery,Css,Background,Jquery Hover,我正在尝试在我的页面上显示一个人员列表的搜索结果,然后允许用户选择其中一个搜索结果 我使用jquery创建了一个人员表,每一行都有一个.searchResult类,我想在hover上突出显示(或更改背景)该行,但它似乎不像我现在这样工作 是否因为它们是我在加载页面后生成的行而出现问题?或者更改行的背景颜色是否有问题 JS $(function(){ $('.searchResult').hover(function(){ $(this).css('background-c

我正在尝试在我的页面上显示一个人员列表的搜索结果,然后允许用户选择其中一个搜索结果

我使用jquery创建了一个人员表,每一行都有一个
.searchResult
类,我想在hover上突出显示(或更改背景)该行,但它似乎不像我现在这样工作

是否因为它们是我在加载页面后生成的行而出现问题?或者更改行的背景颜色是否有问题

JS

$(function(){
    $('.searchResult').hover(function(){
        $(this).css('background-color', '#ff0')
    });
});

下面是一个JSFIDLE,介绍我如何尝试允许对新创建的RPW执行操作:

您可以使用纯CSS执行此操作:

.searchResult:hover td {
    background-color: #ff0;
}

您可以使用纯CSS实现这一点:

.searchResult:hover td {
    background-color: #ff0;
}

我建议使用CSS答案,但如果必须继续使用JQuery,则需要使用委派,因为它们是在页面加载后添加的

$(function(){
    $(body).on('hover','.searchResult',function(){
        $(this).css('background-color', '#ff0')
    });
});

我建议使用CSS答案,但如果您必须继续使用JQuery,则需要使用委托,因为它们是在页面加载之后添加的

$(function(){
    $(body).on('hover','.searchResult',function(){
        $(this).css('background-color', '#ff0')
    });
});


你能包含HTML并最好使用它吗?用CSS添加它就像一种魅力。对于何时使用CSS添加效果以及何时使用JS,是否有一般规则;尽可能使用纯CSS,仅在必要时使用JS.:-)如果可能,使用css,如果不使用JS。如果可能的话,Css很可能会减少编码和挫折感。如果你使用诸如转换、定时器等效果,JS更可能是你的答案。你能包括HTML并最好使用它吗?用CSS添加它就像一种魅力。对于何时使用CSS添加效果以及何时使用JS,是否有一般规则;尽可能使用纯CSS,仅在必要时使用JS.:-)如果可能,使用css,如果不使用JS。如果可能的话,Css很可能会减少编码和挫折感。如果使用过渡、计时器等效果,JS更可能是您的答案。为了防止
td
中嵌套了一个表,您最好将选择器限制为指向子对象,使用
.children()
而不是
.find()
在第一个示例中,td在第二个示例中。@Boaz这没有任何区别;所有背景都将同时更改..搜索结果:hover td不一定需要“td”,除非他为td指定了背景。。。您可以将背景设置为tr,这非常好。@Blazemonger很可能是子元素没有
:hover
行为,在这种情况下,您将覆盖它们的背景。总的来说,我觉得最好选择所需的内容。@Blazemonger抱歉,我没有在开始时为tr或任何东西设置背景。当我在css中包含tr时,它不起作用,但当我包含td时,它起作用了。为什么呢?不是在更改tr而不是td的背景吗?为了防止
td
中嵌套了一个表,您最好将选择器限制为指向子对象,第一个示例中使用
.children()
而不是
.find()
,第二个示例中使用
.searchResult>td
。@Boaz这没有任何区别;所有背景都将同时更改..搜索结果:hover td不一定需要“td”,除非他为td指定了背景。。。您可以将背景设置为tr,这非常好。@Blazemonger很可能是子元素没有
:hover
行为,在这种情况下,您将覆盖它们的背景。总的来说,我觉得最好选择所需的内容。@Blazemonger抱歉,我没有在开始时为tr或任何东西设置背景。当我在css中包含tr时,它不起作用,但当我包含td时,它起作用了。为什么呢?是不是改变了tr而不是td的背景?我认为你已经正确地识别了问题;但是,当鼠标移开时,你的代码不会改变背景色。这一点很好。我都没想到。我只是简单地回答了他为什么上面的代码不起作用的问题。这很有用,因为我需要添加到每个已创建行的链接,我认为这会很方便。@AndrewMcGivery这似乎与我刚才包含的JSFIDLE不起作用。你知道为什么吗?我让它工作了,我的公司使用的jquery版本已经过时了,所以我只需要输入最新的版本;但是,当鼠标移开时,你的代码不会改变背景色。这一点很好。我都没想到。我只是简单地回答了他为什么上面的代码不起作用的问题。这很有用,因为我需要添加到每个已创建行的链接,我认为这会很方便。@AndrewMcGivery这似乎与我刚才包含的JSFIDLE不起作用。你知道为什么吗?我让它工作了,我的公司使用的jquery版本已经过时了,所以我只需要输入最新的版本。