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方法にあります。アピ見てください

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 に答える