我正在使用最新版本的jquery,我用它列出了一个复选框列表。
IE IE7每次用户点击按钮组范围时(就用户而言,几乎就是整个按钮),页面向上滚动大约600像素。
这真的不是一件好事,特别是因为那些收音机位于带有滚动条的页面相当远的位置,您能想象想要选择60个选项的用户吗?每次都要向下滚动?
除了这些我的收音机外,我实际上只使用其他内容:
$(".prettyme br").replaceWith(''); //fix RadioButtonList Bug
$(".prettyme").buttonset();
您可以在http://www.apff.org/fr/inscriptions.aspx?i=18
看到我的错误的实时版本使用IE7,向下滚动并点击多个复选框按钮中的一个,数字前面有一个C-。
我知道它与创建按钮图像的标签内部的跨度有关,如果我在其中一个跨度上附加了一个click事件并使其返回false,我就不再有这种行为。(它会停止复选框)从标签上的选中和取消选中,然后点击)
如何阻止这种恶意的Jquery行为?
答案 0 :(得分:0)
我通过在单击按钮之前保存滚动条位置并稍后将滚动条置于其初始位置来修复此错误。
/*
* The code below fixes a bug in Internet Explorer.
* The bug happens when a gender button is being clicked,
* and scrolls the page down.
* Don't replace it by 'return false' or 'preventDefault()',
* it will prevent the radio button from being selected.
*/
$('.ui-button').live("click", function(event) {
// save the vertical scrolling bar's position
scrollTop = $(window).scrollTop();
$('.box_radio').click(function(){
// bring the scrolling bar at its initial position
if (scrollTop)
$(window).scrollTop(scrollTop);
scrollTop = false;
});
});
box_radio
是按钮的父元素。