2016-12-10 11 views
0

ready()メソッドを置き換えるために関数の中でon()メソッドを使用しようとしていますので、複数のイベントを使って関数をトリガすることができます。だから、単純な用語で、私は交換してくださいしようとしていますready()メソッドを置き換えるときにjQuery on()メソッドが機能しない?

function tableImgScale() { 
$(function() { 
    var bandTableHeight = $('#banddetails').height() + "px"; 

    $(document).ready(function() { 
     $('#banddetails td:nth-child(1)').css({"height": bandTableHeight, "overflow": "hidden"}); 
     $('#banddetails td img').css({"display": "block", "width": "100%", "height": "100%", "objectFit": "cover"}); 
    }); 
}); 
} 

:と$(document).ready(function() {...
:ここでは一般的な私はそれを使用したいと思っています機能です$(document).on('ready resize', function() {...

は、しかし、それは動作しません。しかし、.ready()メソッドのインスタンスを持つ関数は完全に正常に動作します。どんな助けもありがとう。

+0

このリンクは、あなたがhttp://stackoverflow.com/questions/40442779/events-load-and-ready-not-firing/40443935#40443935 – Geeky

+0

@Geekyうーん、助けることができるだろう私が望むようにこれを行うことができないならば、確かに残念ですが、私は回避策がまだ残っていると思っています...よく、回避策です。 – Lefty

答えて

0

$(document).readyに電話する必要はありません。あなたのtableImgScale関数の内部

、次のように記述:

$(function() { 
    // stuff 
}); 

...文書は関数を呼び出す前に準備ができているのを待っているもう一つの方法です。したがって、$(document).readyへのあなたの内部コールは不要です。しかし、ドキュメントが準備されているときとサイズ変更が行われたときにCSS調整が行われるようにするには、そのロジックを独自の関数に抽出して、すぐに呼び出すことができ、resizeのリスナーとして設定できます。

function tableImgScale() { 
 
    $(function() { 
 
    function adjustBandDetails() { 
 
     $('#banddetails td:nth-child(1)').css({ 
 
     "height": bandTableHeight, 
 
     "overflow": "hidden" 
 
     }); 
 
     $('#banddetails td img').css({ 
 
     "display": "block", 
 
     "width": "100%", 
 
     "height": "100%", 
 
     "objectFit": "cover" 
 
     }); 
 
    } 
 
    var bandTableHeight = $('#banddetails').height() + "px" 
 
    adjustBandDetails() 
 
    $(document).on('resize', adjustBandDetails) 
 
    }); 
 
}

+0

これは、私が '$(document).ready(...')として持っているときのように、3番目のネストされた関数内のcssコマンドが最初にロードされないようにするために、resizeイベントを行います。 – Lefty

+0

ただ私の答えを更新しましたその機能を追加するには: – gyre

+0

Geekyのコメントと同様に、私はresizeイベントのために別の関数を作成する必要があるかもしれません。 – Lefty

関連する問題