2010-05-08 77 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

你試圖改變的價值呢? – 2010-05-10 15:55:16

+0

我試過item.change,$(item).click和$(item).change – 2010-05-11 02:35:28

回答

2

看來,IE不執行$('a[text^=\'' + keyCodes + '\']:first')選擇正確

採取在contains selector仔細看看。包含選擇符在註釋中有一些變體。

我用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");