jQuery:选中后无法更改元素的样式

时间:2010-05-04 01:40:23

标签: javascript jquery css

这是我的代码。在您看到“alert([...]);”的地方,会弹出一个警告。为什么CSS样式不会改变? “点击”事件也不会开火!

resolveSideMenuAddress: function () {
    var firstLink = $("#masterHeaderMenu .masterHeaderMenuButton a:first");

    function select(link) {
        alert('i alert');
        link.css({
            'color': '#9a4d9e',
            'cursor': 'default'
        });
        alert('color and cursor not changed');
        link.click(function () {
            alert('click');
            return false;
        });
    }

    if (window.location.pathname === firstLink.attr('href')) {
        alert('i alert');
        select(firstLink);
    }
}

我尝试过addClass()并且无法改变链接的颜色。

2 个答案:

答案 0 :(得分:0)

首先,您实际上并没有触发click事件,而是将单击处理程序应用于链接。在您实际点击链接之前,它不会触发。如果您希望运行现有的点击处理程序,可以尝试link.click()(不使用该功能)。如果您希望实际获取链接,则只需将位置设置为链接的href属性的值即可。其次,我不确定为什么没有正确应用CSS。它看起来不错。我建议使用Firefox / Firebug并在函数运行后检查元素以查看实际使用的样式。

答案 1 :(得分:0)

尝试使用$(link)而不仅仅是链接 像这样:

resolveSideMenuAddress: function () {
    var firstLink = $("#masterHeaderMenu .masterHeaderMenuButton a:first");

    function select(link) {
        alert('i alert');
        $(link).css({
            'color': '#9a4d9e',
            'cursor': 'default'
        });
        alert('color and cursor not changed');
        $(link).click(function () {
            alert('click');
            return false;
        });
    }

    if (window.location.pathname === firstLink.attr('href')) {
        alert('i alert');
        select(firstLink);
    }
}