如何在模糊上销毁Jquery UI微调器

时间:2015-10-06 10:29:02

标签: jquery-ui jquery-ui-spinner

大家好,我有文本框,我希望它们在聚焦时成为一个微调器,并在模糊时成为文本框 这是我的代码

$(".spinner").focus(function () {
    $(this).spinner();
});

$(".spinner").blur(function () {
    $(this).spinner("destroy");
});

演示 http://jsfiddle.net/ygyogba0/

但我得到的错误是"无法读取属性' replaceWith'未定义"

任何人都可以帮我这个吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

这对我和Chrome和IE11都有用。似乎spinner小部件在创建后没有设置焦点。如果你开始做部分回发,使用“开启”是一个很好的做法。但是,在Firefox中,即使有额外的调用也没有设置焦点。这是一个在论坛中详细讨论的问题。如果你需要FF,你将不得不处理它。

但是,如果用户从不点击微调器,则FF问题只是一个问题。我不确定这个解决方案是否已准备就绪。

$("body").on("focus", ".spinner", function () {
$(this).spinner({
    create: function (event, ui) {
        $(this).focus();
        // Trying (and failing) to deal with FF
        /*setTimeout(function () {
            $(this).focus()
        }, 10); */
    }
});

});

$("body").on("blur", ".spinner", function () {
$(this).spinner("destroy");
});
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" />

<input type="text" class="spinner" /><br>
<input type="text" class="spinner" /><br>
<input type="text" class="spinner" /><br>
<input type="text" class="spinner" /><br>