2012-08-03 5 views
1

동적으로 채워지는 jquery 단추 세트가 있습니다. 유일한 문제는 동적으로 추가 된 버튼이 너무 많으면 다음 줄로 감싸고 정상적으로 수행되지 않는다는 것입니다. 여기에 표시 것입니다 :
(element a|about|us|lorem|
|ipsum|and|done)
jQuery 단추 줄 바꾸기

이 가진 가장 큰 문제는 첫 번째 줄의 오른쪽, 그리고 지금까지 두 번째 줄의 왼쪽에있는 요소의 요소들이 있고, 모서리를 둥글게 필요가 없다는 것입니다 사각형 모서리는 단추 세트의 첫 번째 또는 마지막 위치에 있지 않은 다른 모든 단추 요소와 같습니다. 어떤 식 으로든 디스플레이를 얻을 수 있습니까?
(element a|about|us|lorem)
(ipsum|and|done)

고마워요!

+0

모바일 솔루션 용입니까? 그런 다음 버튼을 100 % 너비로 이동하고 display : block을 사용하여 스택하는 것과 같은 다른 디자인 방식을 사용하는 것이 좋습니다. 내가 제안 할 수있는 유일한 다른 방법은 jQuery를 파고 들며 몇 가지 수학 계산을 사용하여 버튼에서 원하는 작업을 수행하는 것입니다. – Lowkase

+0

아니요, 모바일 솔루션이 아니라 데스크톱 솔루션입니다. 쉬운 방법이 없다면 jquery가 버튼의 크기를 조정하고, 버튼의 컨테이너를 고정 폭으로 설정하고, 모든 버튼 행에 대해 새로운 버튼 세트를 생성하는 방법을 살펴볼 것입니다. – Vap0r

답변

2

offset()을 사용하면 Peter가 올바르게 올바른 방향이라고 할 수있다. 올바른 요소를 찾은 후에 .ui-corner-right.ui-corner-left 클래스를 추가하면됩니다. 이 단지 .each 내부에 두 개의 라인과 conidition에있는 것들에 대한 작동 물론

$("#box label").each(function(){ //loop through all the labels for the buttons 
    var self = $(this); 
    if(self.offset().top > self.height()){ //find the first element on the second line 
     self.addClass("ui-corner-left") 
     .prev().prev().addClass("ui-corner-right") // move to the previous label on the above line 
     return false; // break out of the .each 
    } 
}); 

http://jsfiddle.net/KEfau/는() 레이아웃에 따라 다를 수 있습니다. 여러 행의 버튼의 경우, 행의 현재 상단 오프셋을 저장하는 변수를 가지게됩니다. 그러면 요소가 클래스 추가와 일치하지 않을 때입니다.

+0

신난다. 이것은 내가 찾고 있었던 정확하게 것이다. 오프셋에 대한 경험이 없었지만 이후에는 확실히 사용하는 것이 좋습니다. 감사! – Vap0r

0

jQuery offset()을 사용하여 줄 바꿈을 감지하고 마지막으로 동일한 클래스로 나누기 전에 항목을 설정하고 첫 번째와 동일한 클래스로 나누기 후에 항목을 설정할 수 있습니다. 이게 효과가 있을지 모르겠다. 요소가 어떻게 둥근 모서리를 가지는지에 달려있다. 나는 jQuery-ui에 익숙하지 않다.