将变量传递给jQuery Expander设置

时间:2012-03-02 16:38:15

标签: jquery jqgrid expander

我在jqGrid列中使用jQuery Expander插件。我想将切片点设置为动态地略小于非固定列宽。我可以轻松地获取整数列,但我无法弄清楚如何将其传递给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'时,它完全可以正常工作。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用Jquery数据方法代替。

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