2014-09-12 3 views
0

자바 스크립트/jquery에서 알파벳순으로 목록 태그 정렬을 완료했습니다. 두 번째 클릭시 작동합니다. 처음에는 몇 초 (1 초 미만) 동안 작업을 클릭하고 정렬되지 않은 상태로 두 번째 클릭 후에는 제대로 작동한다는 것을 의미합니다.두 번째 클릭 함수가 jquery에서 정렬 작업을 수행 한 후

내 정렬 기능은

function status() { 
    var mylist = $('ul'); 
    var listitems = mylist.children('li').get(); 
    listitems.sort(function (a, b) { 
     var compA = $(a).find('.Status-For-Sorting').text().toUpperCase(); 
     var compB = $(b).find('.Status-For-Sorting').text().toUpperCase(); 
     return (compA < compB) ? -1 : (compA > compB) ? 1 : 0; 
    }); 
    $.each(listitems, function (idx, itm) { 
     mylist.append(itm); 
    }); 
} 

내가

document.addEventListener("deviceready", init, false); 

function init() { 
    $().ready(function() { 
     $("#sort-button-status").click(status); 
    } 
} 

***** HTML ****

<a value="sort" id="sort-button-status" class="sort-button-status">status</a> 
처럼 deviceready에서 그 함수를 정의

내가 잘못한 사람이 어디 있는지 말해주세요.이 c ODE는 상태에 따라 적절하게 정렬되어 있지만, 두 번째 클릭 후 ..

+0

사용을'$ (문서) .ready (함수() {.. '{(... {{})'대신'$ (function() {...})')을 사용하면 두 옵션을 혼합하는 것처럼 보입니다. [jQuery 문서] (http://learn.jquery.com/using-jquery-core/document-ready/)에 나열되어 있습니다. – Shai

답변

0

시도가 mylist에 정렬 된 목록을 적용 할 .appendTo()을 사용 :

function status() 
{ 
    var mylist = $('ul'); 
    var listitems = mylist.children('li').get(); 
    listitems.sort(function(a, b) { 
     var compA = $(a).find('.Status-For-Sorting').text().toUpperCase(); 
     var compB = $(b).find('.Status-For-Sorting').text().toUpperCase(); 
     return (compA < compB) ? -1 : (compA > compB) ? 1 : 0; 
    }).appendTo(mylist); 
} 
+0

안녕하세요 ** Bhusan ** 나는 당신의 코드를 시도했지만 작동하지 않습니다. 나는 마지막으로 반환 값이 .apendTo (mylist)에 추가되었음을 의미하지만이 함수는 작동하지 않습니다. –

+0

그것은'appendTo'가 아니라'apendTo'입니다. 철자법을 확인하십시오 –

+0

죄송합니다. appendTo()를 사용했는데 appendTo()가 아닌 comment에 apendTo를 썼습니다. –

관련 문제