-1

ここに、div の開閉を切り替える関数があります。

function searchAnimate(goTo) {
    if (goTo == "open") {
        $("#searchdiv").animate({
            bottom: 2,
            right: 0
        }, 1500);
        document.getElementById("openclosearrow").innerHTML = "<div onclick='searchAnimate('close')' id='openclosearrow'>&harr;</div>";
    }
    if (goTo == "close") {
        $("#searchdiv").animate({
            bottom: -45,
            right: -218
        }, 1500);
        document.getElementById("openclosearrow").innerHTML = "<div onclick='searchAnimate('open')' id='openclosearrow'>&harr;</div>";
    }
}

エラーはUncaught SyntaxError: Unexpected token }です。私は多くの方法でそれを修正しようとしましたが、今日は私の目が機能していないようです... 誰か助けてくれますか? どうも!

PSそれが役立つ場合、私はChromeを使用しています。

編集

HTMLコードは次のとおりです。

<div onclick="searchAnimate('close')" id="openclosearrow">&harr;</div>
4

2 に答える 2

2

追加する要素のHTMLには、引用符で囲まれた引用符が含まれています。

また、を設定して要素を置き換えようとしているようですinnerHTML。それもうまくいきません。

必要なのは、その要素の1つのハンドラーと、その要素がどのような状態にあるかを示す何らかのマーカーです。ハンドラーはそれを使用して、クリックを開くか閉じるかを知ることができます。

多分このようなもの:

<div id='openclosearrow' class='open'>&harr;</div>

次に、JavaScriptで:

$('#openclosearrow').click(function() {
  var arrow = this, $arrow = $(arrow),
    animations = {
      open: { bottom: 2, right: 0 },
      close: { bottom: -45, right: -218 }
    };

  $('#searchdiv').animate(animations[ $arrow.is('.open') ? 'close' : 'open' ], 1500);
  $arrow.toggleClass('open');
});
于 2012-07-11T13:36:33.893 に答える