2010-07-21 3 views
3

tablesorter 플러그인을 사용하여 테이블을 성공적으로 정렬했습니다. 그러나 특정 행의 특정 텍스트 필드에서 텍스트를 강조하고 싶습니다. 고유 한 ID를 가지고 있지만 정렬 코드 뒤에 코드를 배치하면 작동하지 않습니다. 내가 경고를 참조 #new_foldername가 존재하는지 바로 확인 후 경고를 부착하면jQuery tablesorter plugin - 테이블을 정렬 한 후 작업 수행

jQuery(document).ready(function() { 
    jQuery("#filetable").tablesorter({ 
    sortList: [[3,1]], 
    widgets: ['zebra'], 
    testExtraction: "complex" 
    }); 
    //my new code which doesn't work as expected 
    if(jQuery("#new_foldername").length > 0){ 
    jQuery("#new_foldername").focus(function() { jQuery(this).select(); }); 
    } 
}); 

, 나는 텍스트를 강조 표시 (텍스트 배경으로 강조 그래서 내 코드를 참조하십시오 여기에 내 코드입니다 공장). 경고를 닫기 위해 클릭하면 표의 정렬이 끝나고 더 이상 텍스트가 강조 표시되지 않습니다.

어떤 아이디어가 있을지 모릅니다.

답변

5

정렬이 비동기식으로 발생하는 것처럼 보입니다. 문서에서는 'sortEnd'라는 훅을 제공하며, 여기서 하이라이트 코드를 실행하려고합니다. 정렬 기준으로 열 제목을 클릭하면

불행하게도 sortEnd 만 실행, http://tablesorter.com/docs/example-triggers.html

$(document).ready(function() { 
    // call the tablesorter plugin, the magic happens in the markup 
    $("table").tablesorter(); 

    //assign the sortStart event 
    $("table").bind("sortStart",function() { 
     $("#overlay").show(); 
     }).bind("sortEnd",function() { 
     $("#overlay").hide(); 
    }); 
}); 
0

감사 로버트에서 예를 참조하십시오. 그것은

대신 나는과 같이 새로운 위젯을 만들 ... 초기 종류에 작동하지 않습니다

jQuery.tablesorter.addWidget({ 
    id: "highlightNewFolder", 
    // format is called when the on init and when a sorting has finished 
    format: function(table) { 
    if(jQuery("#new_foldername").length > 0){ 
     jQuery("#new_foldername").focus(); 
    } 
    } 
}); 

이 작동합니다. 불행히도 나는 모든 텍스트를 선택/강조 표시해야만했다. 어떤 이유 코드가 그 안에 ') (선택'했을 때, 아니 심지어는 일 포커싱 : 사람이 집중하고 모든 텍스트를 강조하는 방법에 대한 아이디어를 가지고

jQuery("#new_foldername").focus(function() { jQuery(this).select(); }); 

경우 해당이 많이 주시면 감사하겠습니다! Mottie's fork of tablesorter에 그에만 작업이 아니라 원래 (V2.0.5) :

0

당신은 initialized callback function(또는 바인드 tablesorter-initialized event에) (source) 주를 사용할 수 있습니다.

jQuery(document).ready(function() { 
    jQuery("#filetable").tablesorter({ 
     sortList: [[3, 1]], 
     widgets: ['zebra'], 
     testExtraction: "complex", 
     initialized: function() { 
      if (jQuery("#new_foldername").length > 0) { 
       jQuery("#new_foldername").focus(function() { 
        jQuery(this).select(); 
       }); 
      } 
     } 
    }); 
}); 
+0

감사합니다. 와우, 얼마 전에 내가 이것을 올렸다! 이후 Datatables를 사용하여 귀하의 제안을 테스트 할 수 없었지만, 그럴듯한 소리가났습니다 ...! – WastedSpace