2012-03-02 13 views
0

jqGrid列の内部にjQuery Expanderプラグインを使用しています。スライスポイントを動的に固定されていない列の幅よりも少し小さく設定したいと思います。私は簡単に整数で列を取得することができますが、私はExpanderの設定にこれを渡す方法を理解することはできません。変数をjQuery Expander設定に渡す

// get comment column width dyanmically 
var commentswidth = document.getElementById('list_comments').style.width; // will return width in string (e.g. "550px") 
var sliceplace = parseInt(commentswidth) - 40; // convert string to int and subtract offset 
alert(sliceplace); // test to see that it is correct 

// use jQuery Expander to shorted comment boxes 
$('div.expandable span').expander(
{ 
    slicePoint: sliceplace, 
    expandEffect: 'show', 
    expandText: ' ...', 
    expandPrefix: '', 
    userCollapseText: 'less' 
} 
); //end expander 

sliceplace変数は正しく設定されていますが、Expanderは機能しません(変数を読み込むことはできません)。 Expanderの 'sliceplace'を整数で置き換えると、すべてが完全に機能します。

答えて

1

私は馬鹿です。エキスパンダーは文字数を使用しているので、幅を文字数に換算する必要があります。私は平均文字幅として8pxの幅を選び、それは動作します。

// get comment column width dyanmically 
var commentswidth = document.getElementById('list_comments').style.width; // will return width in string (e.g. "550px") 
alert(commentswidth); 
var sliceplace = parseInt(commentswidth)/8; // convert string to int divide by an average character width to get number of characters to slice at 
sliceplace = parseInt(sliceplace); 
alert(sliceplace); 

// use jQuery Expander to shorten comment boxes 
$('div.expandable span').expander(
{ 
    slicePoint: sliceplace, 
    expandEffect: 'show', 
    expandText: ' ...', 
    expandPrefix: '', 
    userCollapseText: 'less' 
} 
); //end expander 
0

代わりにJqueryデータメソッドを使用してください。

http://api.jquery.com/jQuery.data/

+0

完全にバイパスエキスパンダーを意味しますか? – user1245530

+0

私はそれを理解しました。 Expanderはwidthの文字数を文字数(球場)に変換する必要があります。 Stackoverflowが私にできるときに回答を投稿します。 – user1245530