코드가 거의 자리하고 있었지만 잘못된 순서로만 나타났습니다.
updateWidth()
함수 선언을 여러 번 선언하고이 경우 두 번인 클래스 flex
을 가진 열의 크기 조정 이벤트를 바인딩하기 전에. 그 결과 이벤트가 하나씩 차례로 실행되었습니다. 그래서 나는 .each()
호출에서 그것을 옮겼습니다. 그 대신에 .each()
을 넣으면 이제 작동하는 것 같습니다.
$(document).ready(function() {
// function declaration
function updateWidth() {
$('col.flex').each(function() {
var flex = $(this);
var original = flex.data('original');
var flexIndex = flex.index() + 1; /* Add 1 because JS and CSS differ with indexes */
var flexCell = $('.uiGrid table tbody td:nth-child(' + flexIndex + ')');
flexCell.css({'background':'#ff0000'});
//////////////////////////////////////////////////////////////
if(flexCell.width() < original) {
$('col.flex').removeClass('flex-width');
}
else if(flexCell.width() >= original) {
$('col.flex').addClass('flex-width');
}
});
}
// initial call
updateWidth();
// subsequent call upon window resize
$(window).bind('resize', function() {
updateWidth();
});
});
플렉스 기능이 작동하려면 다른 클래스를 추가해야했습니다. 열이 항상 유연하고 (flex
) 열의 너비를 제어하는 다른 클래스 (flex-width
)를 나타내는 하나의 클래스입니다. 즉, 열이 유연한 것으로 표시된다는 사실을 잃지 않고 유연한 너비를 추가/제거 할 수 있습니다.
내가 처음 만들었던 작업을 중단시키지 않았지만 중복 된 또 다른 사소한 코드를 수정하여 이중 jquery 개체를 제거했습니다. 한 예로이었다 http://jsfiddle.net/GoranMottram/TysFf/1/이
참조 데모에 : 다시 열이 많은시 http://jsfiddle.net/GoranMottram/TysFf/1/embedded/result/
그것은 플렉스 클래스를 다시 추가하지 않습니다
참조 코드에서
에 ... 클래스가 제거되었으므로 코드가 다시 실행되지 않습니다! 그 중간 열 **은 구부러져서는 안됩니다. 항상 300px 너비 여야합니다. – Cameron아, 그렇습니다. 나는 그 문제를 해결하기 위해 해답, 코드 및 데모를 업데이트했다. –
환호성 친구가 작동하고있는 것 같습니다. – Cameron