Флажок jQtransform Нажмите Проблема в IE - PullRequest
2 голосов
/ 24 июля 2010

Существует очень странная проблема с jQTransform и jQery 1.4.2.

Когда я использую плагин jQTransform в любой форме, мои флажки перестают работать должным образом.

Это поведение:

  • Первый щелчок на флажке помечает его
  • С этого момента мне нужно дважды щелкнуть его, чтобы снять / пометить его

Я сделалперед поиском этого вопроса в Google, и я нашел этот вопрос / ответ на форуме jQuery

Решение не подойдет для меня, поскольку переход на более низкие версии jQuery не возможен.

Кто-нибудь знает, как решить эту проблему, используя jQtransform и jQuery 1.4.2 ???

Я не могу понять, что изменилось между версиями, чтобы сделать это новое "поведение" в jQuery 1.4.2

ВАЖНО: Это происходит только в IE.Как обычно, Firefox работает просто отлично.

Ответы [ 3 ]

2 голосов
/ 17 февраля 2011

Я нашел "решение" этой проблемы, не совсем чистое, но оно работает по крайней мере с ie7 / 8 ... просто скопируйте / вставьте следующий блок "$ input.change (function () {...")с этим:

var ieStep=1;    
$input.change(function(){
    if($.browser.msie){
    if((ieStep%2) == 1){$input.trigger("click"); checkStep = 1;} else {ieStep++;}
    }

и "aLink.click (function () {..." с этим:

aLink.click(function(){
//do nothing if the original input is disabled
if($input.attr('disabled')){return false;}

//trigger the envents on the input object
    if($.browser.msie){
    if((ieStep%2) == 0){$input.trigger("click"); checkStep=0;}  
        $input.trigger("change");   
    }
    else {
                $input.trigger("click").trigger("change");  
            }
    ieStep++;
return false;
});

это все

Fabien

1 голос
/ 31 июля 2010

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

//make my own checkpointvariable
              firstONE=inputSelf.checked;    


  //only original row
$input.trigger('click').trigger("change");
//second line of checking
 secondOne = inputSelf.checked;
 if(firstONE==secondOne)
  inputSelf.click();
 //for some strange reason - when it doesnt change i change it  instead...

вот и все ...

0 голосов
/ 31 января 2012

Я исправил это, проблемы были на самом деле, потому что один клик - браузером, а другой - библиотекой

, поэтому я создал новую библиотеку - csTransPie - основываясь на jqtransform - jqtransformЭто отличная библиотека, но у нее действительно много проблем, сегодня css3 решает многие из этих проблем, и мне нравится идея, что элементы управления являются обычными элементами управления и выглядят одинаково в каждом браузере https://github.com/pkoretic/csTransPie

Это работа, нодаже сейчас это лучше, чем jqtransform (переписано более половины css, исправлено много ошибок, чистая css…)

теперь вы можете использовать его для каждого элемента только с одним классом!

все предложенияДобро пожаловать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...