2016-04-18 18 views
0

私はオブジェクトにラップ次の関数、持っている:オブジェクトの内部からdivのサイズを変更するには?

var obj = { 
    resizable : function(element, size) { 
     window.addEventListener('resize', function(event){ 
      element.style.width = parseInt(size) + "px"; 
     }); 
    } 
} 

を、私はこのようにそれを呼び出したとき、それはdivタグのサイズを変更しない:イベントリスナーが私の外にある場合には

obj.resizable(wrapper, window.innerWidth/2); 

それは機能します。 上記のコードスニペットを使用して動作させるにはどうすればよいですか?

ライブラリを使用したくないので、Jqueryで何も提案しないでください。

+0

サイズを変更していない場合は、リスナーを追加してウィンドウのサイズを変更するタイミングを知ることができます。 function(element、size){element.style.width = size + "px";}を実行してください。さらに、pxでコンスタントサイズを使用すると、parseIntの必要はありません。あなたがJavaScriptで始まり、エンターテインメントごとにこれをやっていないのであれば、クライアントのためのプロジェクトのように、フレームワークを使ってみてください。 – Walfrat

答えて

0

これは、すぐに(あなたはこの関数を呼び出すたびに一度起こるか)あなたの要素のサイズを変更します:

var obj = { 
    resizable : function(element, size) { 
      element.style.width = size + "px"; 
    } 
} 

をこれは、イベントリスナーを追加しますので、あなたのウィンドウfunction(event){...}部分のサイズを変更するたびになります呼び出される。

あなたはXの要素にイベントリスナーを追加

、それはあなたが意図していたとして、すぐあなたの要素のサイズを変更しない を行います。そのイベントが発生したときにのみ「トリガーされた」状態になります。 「サイズ変更」を指定したので、「サイズ変更」が発生したときに「トリガーされた」状態になります。さらに、前述(コメントで)Walfratよう

var obj = { 
    resizable : function(element, size) { 
     window.addEventListener('resize', function(event){ 
      element.style.width = parseInt(size) + "px"; 
     }); 
    } 
} 

、あなたはparseIntsizeする必要はありません。

関連する問題