2011-12-05 10 views
1

最も賢いことです。 Firefoxでは、この行でevent.target.id Chromeでのみ動作します

var clicked_el = event.target.id; 

この関数ブレーク:

は、私が呼び出す関数を持っています。これはie9では動作しますが、8では動作しません(ie8はsrcElementを使用するため)。イベントを開始した要素のIDを取得しようとするすべての試みは、私の最後に完全な失火です。

jQueryがjQuery.Eventでブラウザの不調和を平滑化する方法があると思いますが、何も動作しません。

これを行うにはブラウザの一貫性のある方法を教えてもらえますか?

ここに関数があります。これは私のバックボーンビューの一部です。

open: function() { 
    iconState = true; 
    var self = this; 
    var clicked_el = event.target.id; 
     $('div.hr, div#footer_icons').animate({ 
      top : '-=300' 
     }, 500, function() { 
      if (innerContentIsVisible === false) { 
       $('#a_close').fadeIn(500); 
      } 
     }); 
     $('div#article').animate({ 
      opacity : 0 
     }, 500,function() { 
      self.load_content(clicked_el); 
     }); 
    }, 

UPDATE

open関数が別の関数から呼び出されていた、と私はそれがundefinedを返した理由であるopen機能を、呼び出されたときにイベントのparamaterを渡すのを忘れていました。

click: function(event) { 
    if (iconState === false) { 
     this.open(event); 
    } else { 
     var self = this; 
     var clicked_el_icon = event.target.id; 
     $('div#loaded_content').fadeOut(250, function() { 
      self.load_content(clicked_el_icon); 
     }); 
    } 
     }, 

open: function (event) { 
    iconState = true; 
    alert(event); 
    var self = this; 
    var clicked_el = event.target.id; 
    $('div.hr, div#footer_icons').animate({ 
     top : '-=300' 
    }, 500, function() { 
     if (innerContentIsVisible === false) { 
      $('#a_close').fadeIn(500); 
     } 
    }); 
    $('div#article').animate({ 
     opacity : 0 
    }, 500,function() { 
     self.load_content(clicked_el); 
    }); 
    }, 

おかげで...私はこの教訓を忘れてはいけません。ここに

は今eventのparamを渡す機能です。

+2

'event'はどこに定義されていますか?通常、それは 'open:function(event){'であるはずです。 –

+0

@DavidThomas Yea、それは問題のようです。 firefoxは私に 'イベントが定義されていません'というエラーを出します。この関数は、サイドバーの要素がクリックされた後に呼び出されます。クリックされた要素のIDを取得する必要があります。これにより、load_contentに渡して適切なコンテンツを読み込むことができます。以前は 'event'を定義していませんでしたが、jqueryでこれを囲むべきですか? – Lsdafjklsd

+1

私は括弧の中にイベントを入れないだけの理由はありますか?最初のコメント?なぜ複雑なこと? –

答えて

3

"open"ハンドラ関数のパラメータとして "event"を宣言する必要があります。

+0

一息、私は学ぶだろう:*答え*、ない*コメント* ... =/ –

+0

ハハおいしい男。あなたが好きなら答えを入力してください。私はそれをアップヴォートします:-) – Pointy

+0

本当にその必要はありません。目標は答えて助けることです、担当者ではありません) –

関連する問題