2012-03-02 2 views
0

jqGrid 열의 내부에서 jQuery Expander 플러그인을 사용하고 있습니다. 슬라이스 점을 동적으로 비 고정 열 너비보다 약간 작게 설정하려고합니다. 나는 정수로 컬럼을 쉽게 얻을 수 있지만 Expander 설정에 이것을 전달하는 방법을 알 수 없다.변수를 jQuery 확장기 설정으로 전달

// 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 변수가 올바르게 설정되지만 확장기가 작동하지 않습니다 (변수를 읽을 수 없으므로). 확장기에서 '슬라이스 플레이스'를 정수로 대체하면 모든 것이 완벽하게 작동합니다.

답변

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

나는 그것을 이해했다. 확장자가 너비의 문자 수를 문자 수 (야구장)로 변환해야하는 경우 Stackoverflow 수 날 때 대답을 게시 할 수 있습니다. – user1245530

관련 문제