如何通过将鼠标悬停在其中一列中的跨度上来点亮整个单行?

时间:2016-09-23 07:18:30

标签: javascript jquery html css hover

如果我将鼠标悬停在类" fromThisSpan"的跨度上,如何更改包含类row和highlightThisRow的div的背景颜色?

ul中有一堆行,每行有几列。 跨度位于最后一列。跨度也在css中悬停(我没有在这里包含它)。

到目前为止,我确实得到了预期的结果,但仅限于第一行。 我正在使用id而不是div和span的类。

我在下面添加了几次失败的jquery尝试。

这是我用来显示我只能使用此功能的结构的复合轮廓。 它不是一个有效的代码。我遇到的问题是jquery。 [html / razor]

<ul>
    @foreach(ItemType item in ItemCollection)
    <li>
        <div class="row highlightThisRow">
            <div class="col-md-4">
                ... item.contents1
            </div>
            <div class="col-md-4">
                ... item.contents2
            </div>
            <div class="col-md-4">
                ... item.contents3
                <span class="fromThisSpan"><a href="*" title="Delete this row">Delete</a></span>
            </div>
        </div>
    </li>
</ul>

这里我试图使用.on()

附加悬停事件

[jquery]

$(".fromThisSpan").on("hover", $(".fromThisSpan").hover(
        (new function () {
            $(".highlightThisRow").css("background-color", "#fce2e2");
        }),
        (new function () {
            $(".highlightThisRow").css("background-color", "#ffffff");
        })
    ));

这是我发现的SO帖子,并决定尝试一下,但对我没用。

来源:Adding hover CSS attributes via jQuery/Javascript

[jquery]

$(".fromThisSpan").mouseenter(function () {
    $(".highlightThisRow").css("background-color", "#fce2e2");
}).mouseleave(function () {
    $(".highlightThisRow").css("background-color", "#ffffff");
});

[更新]解决了 这是我的案例中的解决方案。

$(".fromThisSpan").hover(function () {
    $(this).closest(".highlightThisRow").css("background-color", "#fce2e2");
}, function () {
    $(this).closest(".highlightThisRow").css("background-color", "#ffffff");
});

2 个答案:

答案 0 :(得分:2)

使用int index = ... //some value you received in broadcast int progress = ...//some value you received in broadcast View view = listView.getChildAt(index); if (view != null) { ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar); if (progressBar != null) { progressBar.setProgress(progress); } } 获取所选元素的相对highlightThisRow

closest

或:

$(function(){
    $(".fromThisSpan").mouseenter(function () {
        $(this).closest(".highlightThisRow").css("background-color", "#fce2e2");
    }).mouseleave(function () {
        $(this).closest(".highlightThisRow").css("background-color", "#ffffff");
    });
});

演示:https://jsfiddle.net/7bgqfdkj/

答案 1 :(得分:2)

尝试(this).parent

$("#fromThisSpan").on("hover", $("#fromThisSpan").hover(
        (new function () {
            $(this).parent("#highlightThisRow").css("background-color", "#fce2e2");
        }),
        (new function () {
            $(this).parent("#highlightThisRow").css("background-color", "#ffffff");
        })
    ));