2010-05-08 2 views
1

Я использую jqtransform на своем сайте. Когда пользователь использует для них возможность использовать горячие клавиши для перемещения по выбранным параметрам. Я добавил эту функцию:Проблема jQuery с привязным тегом с использованием jqTransform

$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.jqTransВыбрать.

Этот код отлично работает во всех браузерах, кроме IE. единственное, что я могу найти, это то, что IE не нравится событие click. Может ли кто-нибудь помочь мне в этом?

Если я отлаживаю код, я вижу, что этот элемент является не привязкой, как я ожидал бы этого, и это меня смущает еще больше.

+0

вы пробовали изменения значения вместо этого? –

+0

Я пробовал item.change, $ (item) .click и $ (item) .change –

ответ

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