2

编辑

在我的代码中,我有一些速记 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/

4

2 回答 2

1

您缺少左括号:

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

将其更改为:

if ($(b).data("ocupied") == ...
于 2012-11-01T09:57:41.130 回答
1

主要问题在于,addClass方法。请看api

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

改变

b.clone().addClass(

只是b.clone()

由于 addClass 不能像这样直接接收 if 条件,因此您需要将它们包装起来function(){}或者只是删除 addClass 那里

工作代码在这里

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

于 2012-11-01T10:03:22.863 回答