2010-07-23 44 views
2

jQTransform和jQery 1.4.2存在一个非常奇怪的问题。jQtransform复选框单击IE上的问题

当我使用jQTransform插件任何形式我复选框停止适当工作。

这是行为:

  • 上复选框的第一次点击,标志着它
  • 从这一点上我需要点击两次取消标记/标记它

我做一个创建这个问题之前,一些谷歌搜索,我发现this jQuery Forum Question/Answer

该解决方案将不适合我,因为转向降低的jQuery的版本是不是一种选择。

有谁知道如何解决使用jQtransform和jQuery 1.4.2这个问题???

我找不出版本之间有什么改变来使上 的jQuery 1.4.2

重要这个新的“行为”:这只是发生在IE浏览器。像往常一样,Firefox工作得很好。

回答

1

好像有虫子到处都是。我工作围绕它像这样在clickHandler的复选框 - 如果你把警报格兰变化触发你看到它并没有改变上面 - 所以只是检查,如果我没有改变你做手工......快速和肮脏的,但工作

//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... 

多数民众赞成花...

2

我已经找到一个“解决方案”这个问题,而不是真的干净,但它至少与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++;} 
    } 

an d的 “aLink.click(函数(){...” 与此:

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

这一切

法比安斯基

0

我已经修复了,实际上是问题,因为有一个点击浏览器和其他库

所以有我创建的新库 - csTransPie - 基于jqtransform - jqtransform是一个伟大的库,但它确实有很多问题,今天css3解决了许多这些问题,并且我喜欢把控制作为正常控制和控制的想法欧凯同在每个浏览器 https://github.com/pkoretic/csTransPie

这是一个进展中的工作,但即使是现在,它比jqtransform更好(超过CSS的一半改写,很多bug解决了,干净的CSS ...)

现在你可以使用它每个元素只有一个类!

所有建议都欢迎!