2010-05-08 81 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");