2009-10-12 4 views
18

jQuery UI 라이브러리 selectable() 사용. 선택 가능한 목록 항목 내의 링크는 마우스 오른쪽 버튼으로 클릭하고 새 창이나 탭에서 열 때만 클릭시 추적되지 않습니다.jQuery UI 선택 가능, 클릭시 따라 가기 링크 없음

HTML

<ul class="selectable-list"> 
    <li> 
     <p>Visit Google.</p> 
     <a href="http://www.google.com">Google</a> 
    </li> 
    <li> 
     <p>Visit Apple.</p> 
     <a href="http://www.apple.com">Apple</a> 
    </li> 
    <li> 
     <p>Visit Microsoft.</p> 
     <a href="http://www.microsoft.com">Microsoft</a> 
    </li> 
</ul> 

CSS

.selectable-list li.ui-selected, .selectable-list li.ui-selected:hover { 
    background-color: #ccc; 
} 

JS

$(document).ready(function(){ 

    $(".selectable-list").selectable(); 

}); 

답변

35

selectable() 메서드는 cancel이라는 옵션을 사용합니다. 기본적으로 ": input, option"이지만 선택 가능한 이벤트에는 앵커를 적용 할 수 없습니다. 코드에 대한

:

$(document).ready(function() { 
    $(".selectable-list").selectable({ 
     cancel: 'a' 
    }); 
}); 
+0

원하는 링크를 찾은 후 선택 가능 모드를 재개 할 수 있습니까? – windsound

+0

오, 당신은 방금 코딩 시간을 절약했습니다. 고맙습니다! – Slavic

+2

나는 이것을 투표했다. 그러나 지연 옵션이 내 유스 케이스에 더 좋다는 것을 알아 냈다. http://api.jqueryui.com/selectable/#option-delay – Doug

1

선택은 HREF에 클릭 이벤트를 오버라이드 (override)됩니다. 탐색 기능에 다시 추가해야 할 것입니다.

그러나 이상한 행동으로 보입니다. 나는 왜 무언가를 선택하고 동시에 링크를 따라 가고 싶을 까? (아마도 새로운 창에 초점을 맞출 것인가?)

+0

예, 그 선택은 링크의 정상적인 클릭 기능을 오버라이드 (override)됩니다 참조하십시오. 그런 다음 문제를 해결하는 가장 좋은 방법에 대한 제안이 무엇입니까? 사용자가 목록에서 항목을 선택하여 개인 설정된 목록에 저장합니다. selectable() 상호 작용은 지금까지 어떤 항목이 선택되었는지 보여줍니다. 그들은 또한 목록 항목의 링크를 따르도록 선택할 수 있습니다. – jerome

+0

글쎄, 자동으로 링크를 따르는 것은 UI 관점에서 바라는 것이 아닐 수도 있습니다. 그렇다면, .selectable()을 호출 한 후에 Jquery more를 사용하여 OnClick 기능을 확장하십시오. 그러나 링크를 클릭 한 후 선택 (select)하는 경우 링크를 활성화 (select)하거나 그 반대의 경우 링크를 활성화하는 것이 좋습니다. 그러나 링크를 클릭하면 해당 링크에 (open url) 링크가 추가됩니다 URL. –

+0

UI 동작에 대한 귀하의 권장 사항에 감사드립니다. 내가 작업하고있는 실제 코드는 기사에 대한 링크와 기사 항목에 대한 더 긴 설명을 포함하는 목록 항목과 그 기사에 대한 날짜 스탬프로 구성됩니다. 따라서 li의 내용은 더 커지고 선택 가능한 li은 링크 자체가 아닙니다. 아마 그 묘사는 당신이 내가하려고하는 것을 상상하는 데 도움이 될 것입니다. 링크 기능을 유지 (또는 다시 추가)하면서 전체를 선택 가능한 상태로 유지하는 방법에 대한 구체적인 권장 사항이 있습니까? – jerome

관련 문제