Tôi có danh sách có thể sắp xếp lồng nhau có thể thêm hoặc xóa các mục được thêm động và có thể được lồng sâu n-levels. Khi lồng vào nhau, một phần tử ul mới được chèn vào bất kỳ phần tử li nào được chọn làm cha mẹ. Tình trạng ban đầu của danh sách là một cái gì đó như sau:Bộ chọn CSS để chỉ nhắm mục tiêu đến trẻ em ngay lập tức và không phải con cháu giống hệt khác
<ul id="parent">
<li id="One"><a href="" class="listLink"><span class="position">1</span>One</a></li>
<li id="Two"><a href="" class="listLink"><span class="position">2</span>Two</a></li>
<li id="Three"><a href="" class="listLink"><span class="position">3</span>Three</a>
<ul>
<li id="A"><a href="" class="listLink"><span class="position">1</span>A</a></li>
<li id="B"><a href="" class="listLink"><span class="position">2</span>B</a></li>
<li id="C"><a href="" class="listLink"><span class="position">3</span>C</a></li>
<li id="D"><a href="" class="listLink"><span class="position">4</span>D</a></li>
<li id="E"><a href="" class="listLink"><span class="position">5</span>E</a></li>
<li id="F"><a href="" class="listLink"><span class="position">6</span>F</a></li>
</ul>
</li>
<li id="Four"><a href="" class="listLink"><span class="position">4</span>Four</a></li>
<li id="Five"><a href="" class="listLink"><span class="position">5</span>Five</a></li>
<li id="Six"><a href="" class="listLink"><span class="position">6</span>Six</a></li>
</ul>
Tôi đang sử dụng MooTools để làm các loại, vv, và nó hoạt động tốt, nhưng tôi đang gặp sự cố đặt lại văn bản vị trí chính xác trên loại . Mỗi bộ chọn CSS tôi cố gắng sử dụng cũng bao gồm tất cả các số của trẻ em thay vì chỉ các phần tử li thuộc danh sách chứ không phải bất kỳ phần tử nào thuộc danh sách con. Giả sử rằng ngoại trừ id, vị trí và văn bản, mỗi phần tử li trong tất cả các danh sách giống với tất cả các danh sách khác. Có bộ chọn để chỉ nhận con ngay lập tức không? Có một cách khác để làm điều này?
Tôi đã thử một số bộ chọn con giống như những người được đề cập:
ul > li
sẽ chọn tất cả các yếu tố li mà là con cái của một ul, không chỉ là những đứa trẻ ngay lập tức#parent > li
Liệu tương tự như trên .
Đây là chức năng mà tôi hiện đang chạy khi một mục bị loại bỏ, không xử lý việc sắp xếp, hoạt động tốt, chỉ cập nhật vị trí. Lưu ý rằng nó cũng là MooTools cú pháp:
var drop = function(el){
el.getParents('ul').reverse().each(function(item){
var posCount = 1;
item.getElements('li a span[class=position]').each(function(pos){
pos.set('text', posCount);
posCount++;
});
});
}
Hiện nay, việc thay đổi thứ tự bất kỳ mục trên cấp độ chính sẽ ghi số lại tất cả mọi thứ 1-12, ngay cả những danh sách con. Việc thay đổi bất kỳ mục nào trên danh sách con sẽ cung cấp số chính xác cho danh sách đó, nhưng làm cho danh sách cha mẹ đếm sai tất cả các phần tử li con trong đánh số.
tôi cảm thấy như đây là một hack xấu xí, nhưng nó hoạt động:
var drop = function(){
var ulCount = 1;
$$('ul').each(function(item){
if(item.get('id') != 'parent') {
item.set('id', 'id-'+ulCount);
}
var elId = item.get('id');
var posCount = 1;
$(document).getElements('#'+elId+'>li>a>span[class=position]').each(function(pos){
pos.set('text', posCount);
posCount++;
});
ulCount++;
});
}
Xin cảm ơn, nhưng MooTools xử lý vấn đề IE6, vì vậy đó không phải là những gì tôi đang theo dõi. Tôi đang tìm một cách để thiết lập lại văn bản của các nhịp để chỉ ra vị trí chính xác cho danh sách đó, nhưng không phải là danh sách cha mẹ hoặc con, đó là nơi mà vấn đề đang đến. – VirtuosiMedia
#parent> li hoàn toàn chỉ làm những đứa trẻ immedate . Bạn có cái gì khác đang diễn ra nếu điều đó không hoạt động. Có thể cần thêm thông tin. – cletus
MooTools cho phép tôi sử dụng bộ chọn CSS3, nhưng vì tôi đã không thể thay đổi chỉ các con ngay lập tức, nó cũng thay đổi không chính xác số cho tất cả các danh sách con của tôi. – VirtuosiMedia