1

このコードを使用して div をフェードしようとしています:

Javascript:

<script type="text/javascript">

  function show(id) {
    //document.getElementsByName(id)[0].style.visibility = "visible";
    document.getElementsByName(id)[0].fadeTo( "slow", 0.5 );
  }
  function hide(id) {
    document.getElementsByName(id)[0].style.visibility = "hidden";
  }


</script>

html:

<div style="width: 80px; height: 20px; background-color: red;" onmouseover="show('hej')" onmouseout="hide('hej')">
   <div id="div1" Name="hej" class="hej">Text</div>
</div>

私が含めた:

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

そして、「TypeError: Object # has no method 'fadeTo'」というエラーが表示されます。これを修正するのを手伝って、なぜそれがうまくいかないのか説明できる人はいますか?

4

4 に答える 4

2

Javascript DOM要素にはfadeToメソッドがありません。jQueryでラップする必要があります

$(document.getElementsByName(id)[0])

またはこれを行う

$('[name="'+id+'"]').eq(0).fadeTo(
于 2014-03-07T13:45:50.640 に答える
1

DOM 要素をターゲットにして、その要素で jQuery メソッドを呼び出そうとしているためです。DOM オブジェクトを選択して、jQuery コレクションに入れる必要があります。

function show(id) {
    $('[name='+id+']').fadeTo("slow", 0.5);
}
function hide(id) {
    $('[name='+id+']').hide()
}

JSFiddle

関数に名前を渡しているので、それは一意であると想定しています。そうでない場合は、現在のコンテキスト内の要素のみを対象とするようにする必要があります。このようなものはあなたにとってうまくいくでしょう:

JSFiddle

于 2014-03-07T13:46:02.877 に答える
0

JavaScript が間違っています :/ - jquery 関数を JavaScript オブジェクトに適用しようとしています。これが、JQuery オブジェクト エラーではなく、Object# エラーが発生する理由です。getelementby id の代わりに、JQuery セレクターを使用します。こちらをご覧ください。

http://blog.techplusone.com/wp-content/uploads/2012/09/jquery-Api-1.2.png とブックマーク、以前は私にとって大きな助けでした。

function show(id) {
   $('#' + id).show('slow');
  }
  function hide(id) {
     $('#' + id).hide('slow');
   }
于 2014-03-07T13:45:47.217 に答える
0

.fadeTojquery オブジェクトのメソッドであり、jquery オブジェクトをdocument.getElementsByName(id)返さないでください。

あなたが試すことができます:

$('[name="'+id+'"]').eq(0).fadeTo( "slow", 0.5 );
于 2014-03-07T13:45:53.250 に答える