2016-07-01 5 views
-2

e.preventDefault();を追加しようとしています。 タグをクリックした場合。以下は私のコードですが、動作しません。誰かが私に助言をお願いできますか?ありがとうございました。e.preventDefault()Javascriptプロトタイプのモジュールパターン

(function($){ 
    'use strict'; 
    var ItemPhoto = function(){ 
     this.$el = undefined; 
     this.getElements(); 
     this.events(); 
    } 
    ItemPhoto.prototype = { 
     getElements: function(){ 
      this.$el = $('#contaner').find('.image'); 
      this.$item = $('#contaner').find('.item').find('a'); 
     }, 
     events: function(){ 
      this.$item.on('click', {_self:this}, this.swapImage()); 
     }, 
     swapImage: function(e){ 
      e.preventDefault(); 
      var _self = e.data._self; 
      _self.$el.attr('src', _self.$item.attr('href')); 
     } 
    } 
    var itemPhoto = new ItemPhoto(); 
})(jQuery); 
+2

'()'のおかげで、イベントハンドラにバインドするのではなく、 'swapImage'を呼び出すことになります。 – ssube

+0

あなたが言った行を編集しましたが、それでも動作しません。 – shinyatk

+1

[あなたの編集は問題を解決しました](https://jsfiddle.net/rx96ma6d/)。だから私はロールバックして、複製としてクローズしている。 – Oriol

答えて

1

コードが正常に動作しているようです。 jqueryがロードされ、DOMがロードされるまで関数が待機することを確認します。

+0

私はあなたが投票するべき質問に記載された問題を再現することはできません(または、評判が十分でない場合は旗を立ててください)。ランダムな推測で回答を投稿しないでください。 – Oriol

+0

ありがとうございます。 jQueryとDOMの読み込みについて確認します。 – shinyatk

関連する問題