Jquery jQtransform复选框单击IE上的问题
jQTransform和jQery 1.4.2有一个非常奇怪的问题 当我在任何表单上使用jQTransform插件时,我的复选框都会停止正常工作 这就是行为:Jquery jQtransform复选框单击IE上的问题,jquery,internet-explorer,checkbox,Jquery,Internet Explorer,Checkbox,jQTransform和jQery 1.4.2有一个非常奇怪的问题 当我在任何表单上使用jQTransform插件时,我的复选框都会停止正常工作 这就是行为: 第一次单击复选框,将其标记 从那时起,我需要单击它两次以取消标记/标记它 在创建这个问题之前,我在谷歌上搜索了一下,发现 这个解决方案对我不起作用,因为转向jQuery的较低版本不是一个选项 有人知道如何使用jQtransform和jQuery 1.4.2解决这个问题吗 我不知道是什么在不同版本之间进行了更改,使这种新的“行为”得以实
- 第一次单击复选框,将其标记
- 从那时起,我需要单击它两次以取消标记/标记它
重要提示:这只发生在IE中。像往常一样,Firefox工作正常。似乎到处都是bug。我在clickhandler for复选框中这样处理它-如果你在更改触发器上方放置一个警报,你会看到它没有更改-所以只要检查一下,如果我没有更改,你可以手动执行。。。又快又脏,但很管用
//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...
就这么多了 我已经找到了这个问题的“解决方案”,虽然不是很干净,但它至少在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我已经解决了这个问题,问题实际上是因为浏览器一次点击,而库一次点击 因此,我创建了一个新的库——csTransPie——基于jqtransform——jqtransform是一个很棒的库,但它确实有很多问题,今天css3解决了很多这些问题,我喜欢控件是普通控件的想法,在每个浏览器中看起来都一样 这是一项正在进行的工作,但即使是现在,它也比jqtransform(超过一半的css被重写,许多错误被解决,干净的css…)要好 现在,您只需一个类就可以使用每个元素 欢迎所有建议