防止标签页面滚动输入

Dan*_*nes 7 html javascript jquery

任何人都知道一种方法可以防止页面在更改时跳转到输入?特别是如果它使用页面上其他地方的标签按钮进行了更改.

这个问题会影响IE,Chrome Canary,FireFox以及其他一些,实际上它唯一影响的浏览器是Chrome v28.

你可以在这里看到问题:http://jsfiddle.net/FgaWM/3/

通常这将是一个有用的功能,但在我的情况下,这是非常烦人的,我需要一种方法来防止/覆盖它.

我试过用JQuery强制滚动位置:

var labelPos = $(window).scrollTop();
$(window).scrollTop(labelPos);
Run Code Online (Sandbox Code Playgroud)

这个解决方案充其量只是错误,导致瞬间页面闪烁.

谁有更好的方法?

编辑:我想出了一个解决方案:P

$('label').click(function(e) {
    e.preventDefault();
    var For = $(this).attr('for');
    $('#' + For).trigger('click');
});
Run Code Online (Sandbox Code Playgroud)

A. *_*lff 6

$('label[for]').on('click', function (e) {
    var target = window[this.htmlFor];
    target.checked = !target.checked;
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

  • 使用$(target).trigger('change')或者你将丢失JavaScript事件. (2认同)