2010-01-14 5 views
0

나는이 코드를 가지고있다. 그러나 첫 번째 테이블 행과 마지막 테이블 행은 정렬 가능하게하고 싶지 않습니다. 그래서 첫 번째 행 또는 마지막 행인 경우 이벤트를 취소하는 것만으로 생각했습니다. 그러나 event.target을 경고 할 때 정렬 가능한 컨테이너로 설정된 요소라는 것을 알려줍니다. 이벤트에 전송 된 요소를 실제로 얻으려면 어떻게해야합니까? 또한 어느 누구도 이벤트를 취소하는 방법을 알고 있습니까? 그냥 false 또는 event.preventDefault()를 반환합니까?JQuery와 이벤트 요소

+0

정렬 할 수있는 플러그인은 무엇입니까? jQuery UI? – cletus

답변

1

콜백의 두 번째 인수를 사용하여 위젯 요소에 액세스 할 수 있습니다. 귀하의 코멘트에

응답에서
start: function (event, ui){ 
    var helper=$(ui.helper); 
} 

http://jqueryui.com/demos/sortable/#overview

:

당신은 드래그 할 수는 하지에 목록의 요소 중 일부를 원하는 건가요?

당신은 옵션

$('someElement').sortable({ 
    items: '.test', 
    //other sortable options 
}); 
+0

완벽하게 작동하는 덕분에 ... 요소에 대한 이벤트를 취소하는 방법을 알고 계십니까? 왜냐하면 어떤 이벤트에는 클래스가 없어서 움직일 수 있기를 원하지 않기 때문입니다. – ngreenwood6

0

생활을 더 편리하게하십시오. 머리글 및 바닥 글 요소 사용 :

<table> 
<thead> 
    <tr>...</tr> 
</thead> 
<tfoot> 
    <tr>...</tr> 
</tfoot> 
<tbody> 
    <tr>...</tr> 
    <tr>...</tr> 
    <tr>...</tr> 
    ... 
</tbody> 
</table> 

예 본문 앞에 머리글이 있어야합니다. 그런 다음 머리글과 바닥 글을 그대로두고 본문으로 정렬 할 수 있습니다. 아마도 충분할 것입니다 :

$(".testing > tbody").sortable({...}); 
0

이 선호 정렬 항목을 선택하는 옵션을 사용하기가 더 쉬울 수있다한다.

$('.testing').sortable({ 
    items: 'tr:not(:last, :first)' 
}); 

는 위의 false를 반환하여 이벤트 핸들러를 취소 할 수 있습니다 jQuery를에서 "처음과 마지막을 제외한 종류의 모든 그럴의"

말했다.

$(".testing").sortable({ 
    helper: fixHelper, 
    containment:$("testing").parent(), 
    start:function(){ 

     if($(event.target).hasClass("test") || $(this).hasClass('test')){ 
      alert("hello"); 
      return false; 
     } 
    } 

});