JQuery css()on。('click'...不起作用

时间:2013-07-23 11:52:26

标签: jquery

这是我的JQuery代码:

$(document).ready(function () {
    $("ul.navbar").on("click", "li", function() {
        $(this).find("h2").css("color: pink");
        alert($(this).text());
        alert($(this).find("h2").text());
    });
});

单击会正确生成警报,但文本的颜色不会更改。我也试过了.addClass(),但这也行不通。有任何想法吗?我已经仔细阅读了很多其他类似的问题,但没有发现它们有用,我是Javascript的真正新手并且仍然卡住了。

6 个答案:

答案 0 :(得分:3)

您错误地使用了.css() -

应该是这样的 -

$(this).find("h2").css("color","pink");

API ---> http://api.jquery.com/css/

答案 1 :(得分:2)

改变这个:

$(this).find("h2").css("color: pink");

到那个:

$(this).find("h2").css("color", "pink");

答案 2 :(得分:2)

JQuery css函数有两个参数,你使用的不正确。

正确的参数如下

$(this).find("h2").css("color" ,"pink");

答案 3 :(得分:1)

或者这个:

$(this).find("h2").css( {color: "pink" } );

答案 4 :(得分:1)

jQuery的CSS函数接受两种样式的参数:

  • 作为单个名称/值对:

    .css('stylename' , 'value')
    

    函数调用中的两个参数,以逗号分隔。

    ...在这种情况下,您的代码将如下所示:

    .css('color', 'pink')`
    

    注意:两个参数都是字符串,因此必须用引号括起来。无论您使用单引号还是双引号都无关紧要。

  • 作为包含多个名称/值对的对象:

    .css({'stylename':'value' , 'stylename':'value' , etc})
    

    一个参数,但定义为一个对象,用花括号括起来;每个名称/值由冒号分隔;以逗号分隔的每对名称/值。

    ...在这种情况下,您的代码将如下所示:

    .css({'color': 'pink'})`
    

    和以前一样,单引号或双引号无关紧要,但请注意,由于这是一个对象结构,因此样式名称周围的引号是可选的(尽管并非在所有情况下都是如此,因此最好始终坚持使用有他们)。

第一种语法最初是唯一可用的语法;后一种语法在jQuery的更高版本中添加,允许在一次调用中设置多个样式。

如果您只更改单个样式值,则使用哪种语法无关紧要。如果您一次更改多个样式,那么显然最好使用第二种语法而不是使用第一种语法进行多次调用。

答案 5 :(得分:0)

您的代码似乎对我有用:

$(document).ready(function () {
    $("ul.navbar").on("click", "li", function() {
        $(this).find("h2").css("color","pink");
        alert($(this).text());
        alert($(this).find("h2").text());
    });
});

jsFiddle

你使用的是哪个jQuery?