简写JS到jQuery

时间:2012-11-01 09:45:24

标签: javascript jquery

修改

在我的代码中,我有一些速记JS,一位同事在工作中帮助我。我并不完全理解它,并且将它更改回简单的jQuery会更快乐。我试过自己,但它一直在破碎。

这是简写

if (target.length) {
    target.addClass("occupied");
    $(".occupied").parent(".flip-wrapper").addClass("flipped");
    b.clone().addClass(
    b.data("letter") == target.parents('td').data("letter") ? "right-letter" : "wrong-letter").appendTo("table").css({
        background: "transparent",
        position: "absolute",
        top: currentPos.top,
        left: currentPos.left
    }).animate({
        top: targetPos.top,
        left: targetPos.left
    }, "slow", function() {
        $(this).css({
            top: 0,
            left: 0
        }).appendTo(target);

我试图像这样改变它

    if (target.length) {
    target.addClass("occupied");
    $(".occupied").parent(".flip-wrapper").addClass("flipped");
    b.clone().addClass(
    if $(b.data("letter") == target.parents('td').data("letter")) {
      $(this).addClass("right-letter");
     } else { 
      $(this).addClass("wrong-letter")
      }.appendTo("table").css({
        background: "transparent",
        position: "absolute",
        top: currentPos.top,
        left: currentPos.left
    }).animate({
        top: targetPos.top,
        left: targetPos.left
    }, "slow", function() {
        $(this).css({
            top: 0,
            left: 0
        }).appendTo(target);

我哪里错了?

小提琴:http://jsfiddle.net/smilburn/Dxxmh/82/

2 个答案:

答案 0 :(得分:1)

您缺少左括号:

if $(b.data("ocupied") == ...

将其更改为:

if ($(b).data("ocupied") == ...

答案 1 :(得分:1)

主要问题在于addClass方法。请参阅api

http://api.jquery.com/addClass/

更改

b.clone().addClass(

b.clone()

由于addClass无法直接接收这样的条件,你需要将它们包装在function(){}中,或者只删除那里的addClass

工作代码在这里

http://jsfiddle.net/Dxxmh/86/