0

此 jQuery 代码更改除 1.6.4 版以外的所有 jQuery 版本中的背景颜色。为什么 1.6.4 版不能正确运行此代码?

HTML:

<table cellspacing="0" cellpadding="0" id="bin" width="100%">
    <thead>
        <tr> <a href="#"><th style="text-align:left; padding-top: 20px;" width="10%" id="row-1">Symbol <img src="/images/sort-arrow-up.png" title="Sort by Symbol" alt="Sort by Symbol" class="sort-right move-left bottom-image" id="image1"/></th></a>

            <th style="text-align:left;" width="20%" id="row-2">Company
                <br><span class="move_right">Name</span> 
                <img src="/images/sort-arrow-up.png" title="Sort by Company Name" alt="Sort by Company Name" class="sort-right move-left" id="image2" />
            </th>
            <th style="text-align:center;" width="12%" id="row-3"><span class="center-text">Buy</span>
                <br>Date
                <img title="Sort by Buy Date" src="/images/sort-arrow.png" alt="Sort by Buy Date" id="image3" />
            </th>
            <th style="text-align:center;" width="10%" id="row-4"><span class="center-text">Buy</span>
                <br>Price &nbsp;
                <img title="Sort by Buy Price" src="/images/sort-arrow.png" alt="Sort by Buy Price" id="image4" />
            </th>
            <th style="text-align:center;" width="9%" id="row-5"><span class="center-text">Closed</span>
                <br>Price &nbsp;
                <img title="Sort by Closed Price" src="/images/sort-arrow.png" alt="Sort by Closed Price" id="image5" />
            </th>
            <th style="text-align:center;" width="9%" id="row-6"><span class="center-text">Closed</span>
                <br>Date &nbsp;
                <img title="Sort by Closed Date" src="/images/sort-arrow.png" alt="Sort by Closed Date" id="image6" />
            </th>
            <th style="text-align:center;" width="10%" id="row-7"><span class="center-text">Total</span>

jQuery:

$(function(){
    $('#bin').on('click', 'th', function(){
        $(this).parent().children().removeClass('active');
        $(this).addClass('active');
    });
});

CSS:

tr th.active
{
  background-color: #7DAFFF;!important
}

演示- jsFiddle

4

3 回答 3

1

我猜 jQuery 1.6.4 无法识别 .on

这是库 1.6.4 和更高版本之间的区别

http://jsperf.com/on-vs-delegate-jquery/3

.delegate 应该在 1.6.4 之后工作,他们将其更改为 .on

这里是 click(function()

    $(function(){
       $('#bin th').click(function(){
          $(this).parent().children().removeClass('active');
          $(this).addClass('active');
       });
    });

例子

于 2013-11-04T15:55:21.243 回答
0

我像这样(小提琴)试过它,它工作正常:

JS:

$(function(){
    $('#bin th').click(function(){
        $(this).addClass('active').siblings().removeClass('active');
    });
});

CSS:

tr th.active
{
  background-color: #7DAFFF;
}

原来是 .on 方法导致了问题。

于 2013-11-04T15:54:37.240 回答
0

onjquery不支持1.6.4你可以使用delegate('th','click')

于 2013-11-04T15:58:11.887 回答