1

パラメータを関数に渡そうとしています。

 animateDiv(div) {
  .....

}

この関数は機能しますが、このようにパラメーターを渡そうとすると、機能しなくなります。

$activeToggle.toggle("slow", function(){
            $(this).find(".anime_yellow").each(function (i,e){

            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 


         });

ハードコア値を関数に渡すと機能します。つまりanimateDiv(simple)、同じものを保持する変数を入れようとすると、機能しなくなりますanimateDiv(e.id)、ありがとう

完全なコードはこちら: http://jsfiddle.net/Fwhtv/22/

4

3 に答える 3

4

オブジェクトを渡すanimateDivと仮定しています。次の行に注意してください。

function animateDiv(div){
   var text = $('#' + div.id).text(); //div is assumed to be a div element

を渡したい場合はid、次のように変更する必要があります。

function animateDiv(divId){
   var text = $('#' + divId).text();

もちろん、他の参照も更新div.idします。

作業: http://jsfiddle.net/Fwhtv/22/

于 2012-07-24T16:59:37.230 に答える
1

あなたのjsfiddleから:

function animateDiv(div){

var text = $('#' + div.id).text();

var doAnimate = function() {
    $('span.' + div.id).each(function() {
        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
}

IDを渡していますが、関数では要素が必要です。

于 2012-07-24T16:59:07.700 に答える
0
$activeToggle.toggle("slow", function(){
      $(this).find(".anime_yellow").each(function (i,e){

            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 


         });

関数 (i, e) では、e が要素です。

<span id="simple" class="anime_yellow">

の ID を取得するには、 $(e).attr('id'); を使用する必要があります。

animateDiv($(e).attr('id'));

現在、パラメータをオブジェクトとして渡しました。オブジェクト(スパン)のIDを渡す場合、以下のようにスパンのIDを変更する必要があります。

function animateDiv(div){
// var text = $('#' + div.id).text();
var text = $('#' + div).text();

var doAnimate = function() {
    //  $('span.' + div.id).each(function() {
     $('span.' + div).each(function() {

        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
} 
于 2012-07-24T17:38:21.000 に答える