0

<div>をクリックしたときにサイズを縮小したい<a>。しかし、うまくいきません。

Javascript コード (divheight はグローバル変数)

function jamsho(id) {
  var idd=id.substr(1);
  alert(document.getElementById(idd).style.height);

  if(document.getElementById(idd).style.height != 30) {
    $(id).stop().animate({height:30}, 700);
    divheight=document.getElementById(idd).style.height;
  } else if (document.getElementById(idd).style.height == "30px") {
    $(id).animate({height:divheight}, 700);
  }
}

そして関数を呼び出します:

<div class="linkbox" id="linksbox">
    <a id="Titr" onClick="jamsho('#linksbox')"> پیوند ها</a>
    <a href="http://rawanonline.com" target="_newtab">سایت روان آنلاین</a>
</div>
4

5 に答える 5

2

この条件document.getElementById(idd).style.height!=30を満たしていると確信していますか?

プロパティは「px」サフィックスが付いた文字列heightとして提供されると思います。これを参照してください

だから、働くにはif (document.getElementById(idd).style.height!="30px").

ところで、jQuery または純粋な Javascriptのみを使用し、それらを混在させないことをお勧めします。

于 2013-08-02T20:58:00.460 に答える
1

次のようなことを試してください:

var $div = $('#linksbox'),
    divHeight = $div.height();

$('#Titr').click(function() {
    if (!$div.hasClass('expanded')) {
        $div.animate({height: 40}, 700, function() {
            $(this).addClass('expanded');
        });
    }
    else {
        $div.animate({height: divHeight}, 700, function() {
            $(this).removeClass('expanded');
        });
    }
});

http://jsfiddle.net/ZqEZ5/

いくつかのメモ:

  • document.getElementByIdjQueryで使用する必要はありません
  • インライン イベント ハンドラを使用しないでくださいonClick

それが役に立てば幸い。

于 2013-08-02T21:04:41.547 に答える
1

jQuery アニメーションを jQuery 以外のオブジェクトに適用できるとは思わない

function jamsho(id) {
alert($(id).css("height");

 if($(id).css("height")!=30)
 {
    $(id).stop().animate({height:30},700);
    divheight=$(id).css("height");

 }
 else if ($(id).css("height")==30)
 {
    $(id).animate({height:divheight},700);

 }
}
于 2013-08-02T20:53:52.643 に答える
1

関数の一部ではなく、すべての関数に jQuery を使用できます。

function jamsho(id)
{
    var $this = $(id);
    alert($this.height());

    if ($this.height() != 30)
    {
        $this.stop().animate({height:30},700);
        divheight = $this.height();
    }
    else if ($this.height() == 30)
    {
        $this.animate({height:divheight},700);
    }
}
于 2013-08-02T20:57:00.037 に答える