2010-05-08 5 views
1

내 사이트에서 jqtransform을 사용하고 있습니다. 사용자가 바로 가기 키를 사용하여 선택 항목을 이동할 수있게되면 이 기능을 추가했습니다 :jqTransform을 사용하여 앵커 태그로 jQuery 문제가 발생했습니다.

$wrapper.find('a').keydown(function (e) { 

      var Esc = 27; 

      var code = (e.keyCode ? e.keyCode : e.which); 

      if(code== Esc || (code>=65 &&code<=90)){ 
       var letter = String.fromCharCode(code); 

       if (code==Esc) 
        keyCodes = ""; 
       else{ 

        if (keyCodes=='') 
         keyCodes += letter; 
        else 
         keyCodes += letter.toLowerCase(); 



        var item = $wrapper.find('a[text^=\'' + keyCodes + '\']:first'); 

        item.click(); 
       } 
      } 
     }); 

내부 $ .fn.jqTransSelect.

이 코드는 IE가 아닌 모든 브라우저에서 정상적으로 작동합니다. 내가 찾을 수있는 유일한 것은 IE가 클릭 이벤트를 좋아하지 않는다는 것입니다. 아무도 이것으로 나를 도울 수 있습니까?

코드로 디버깅 할 경우 해당 항목이 예상대로 앵커가 아니라 선택 항목임을 알 수 있습니다.

+0

로 사용할 수 있습니까? –

+0

나는 item.change, $ (item) .click 및 $ (item) .change를 시도했다. –

답변

2

은 IE가 제대로

contains selector에 대해 자세히 살펴 $('a[text^=\'' + keyCodes + '\']:first') 선택을 실행하지 않는 것으로 보인다. 주석에 contains 선택자의 변형이 있습니다.

나는 regexcontains 선택

$.expr[':'].regexcontains = function(obj, index, meta, stack){ 
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').search(new RegExp(meta[3], "ig")) >= 0; 

대신 값을 변경 시도 해 봤나

var item = $wrapper.find("a:regexcontains('^" + keyCodes + "'):first"); 
관련 문제