2010-04-01 3 views
1

사용자가 검색 결과를 정렬 할 수 있도록 드롭 다운을 사용하고 있습니다. 표의 이러한 결과는 정렬 가능한 기준 모두가 아닌 열로 표시됩니다. 열 머리글을 클릭하거나 '정렬 기준'드롭 다운을 사용하여 열을 정렬 할 수 있습니다. 사용자는 정렬 된 열 머리글을 클릭하여 정렬을 되돌릴 수 있습니다. 드롭 다운에서이 기능을 복제하려고하지만 IE7/IE8에서 작동하지 않습니다.IE에서 option.click 이벤트를 트리거하는 해결 방법이 있습니까?

다음은 IE와 Firefox에서 모두 작동하는 기존 코드입니다. 정렬 된 열은 변경하지만 정렬 방향은 변경하지 않습니다.

$("#sortSelect").change(function() { 
    //change sort 
}); 

이것은 내가 변경하려고 시도한 것이며 Firefox에서 작동합니다. 정렬 된 열을 변경하고 정렬 된 열이 이미 선택되어 있으면 정렬 방향이 변경됩니다.

$("#sortSelect option").click(function() { 
    //change sort 
}); 

누군가 option.click 이벤트를 트리거하는 방법을 알고 있거나 좋은 해결 방법을 알고 싶습니다.

+2

FWIW, 사용자로서 나는 꽤 이상한 사용자 인터페이스를 발견 할 것이라고 생각합니다. 드롭 다운 목록을보고있는 경우 이미 선택한 옵션을 다시 선택하면 아무 것도 변경되지 않을 것으로 예상됩니다. –

+0

은 #sortSelect 요소 드롭 다운 스타일 또는 목록 스타일 (즉, 크기 속성이 있습니까)입니까? – SBUJOLD

+0

@ T.J. Crowder - 사용자 피드백을 기반으로 변경 작업을하고 있습니다. 그들은 표시되지 않는 열의 정렬을 되돌릴 수 있기를 원합니다. –

답변

0

T.J. Crowder는 덧붙여서, 이것은 사용자 인터페이스를 만들면서 어색한 변화라고 말했다. 즉, 요소를 클릭하는 것과 요소 을 클릭하는 것의 구분은 multiple 속성 집합이이 아니면 선택할 수 있습니다. Internet Explorer에서 다음 코드를 시도하십시오.

$(document).ready(function() 
{ 
    $("#sortSelect").click(function (event) { 
    if (event.offsetY > this.offsetHeight) 
     $(this.options[this.selectedIndex]).click(); 
    }); 
    $("#sortSelect option").click(function (event) 
    { 
    alert('clicked option '+this.parentNode.selectedIndex); 
    }); 
}); 

옵션 요소를 클릭하면 select 요소에서 click 이벤트가 발생하기 때문에 작동합니다. event.offsetY > this.offsetHeight을 검사하는 select 요소의 경계를 벗어 났음을 감지하면 jQuery를 사용하여 현재 선택된 option 요소의 click 이벤트를 트리거 할 수 있습니다.

+0

정확히 내가 무엇을 찾고 있었습니까. 나는 인터페이스에 동의하고 대안을 조사 할 것이다. 감사! –

관련 문제