javascript - 禁用 jQuery 移动 slider 点击时的文本输入

标签 javascript jquery jquery-mobile

给定 jQuery 移动 slider 的默认代码:

<label for="slider-1">Input slider:</label>
<input type="range" name="slider-1" id="slider-1" value="60" min="0" max="100" />

默认行为是单击标签字段不会执行任何操作,但点击标签字段会在移动设备上显示文本输入。

如何禁用此行为,以便标签在移动设备上显示为纯文本?

最佳答案

这应该可以实现您想要做的事情,而不会破坏标签标记与其关联输入的属性。我手头没有移动设备,因此无法对此进行测试。

<label for="slider-1" onclick='return false;'>Input slider:</label>

好处是它可以防止默认行为,同时保留与输入的辅助功能关联。

使用 jQuery,我们可以使用 PreventDefault() 对文档中的所有标签实现同样的效果;功能。

$('label').click( function(event) {
  event.preventDefault();
});

或者在较新版本的 jQuery 中使用“on”处理程序,如下所示...

$('label').on('click', false);

jQuery mobile 要求您有一个与输入配对的标签,UI 才能正常运行,因此删除它并不是解决方案。但是,它们确实提供了通过用户界面本身隐藏标签的功能

参见http://jquerymobile.com/demos/1.2.0/docs/forms/docs-forms.html

在此示例中,您将隐藏实际的标签文本,同时保留 jQuery Mobile 和辅助功能的标签功能。

<label for="slider-1" class="ui-hidden-accessible">Input slider:</label>
Input slider:<input type="range" name="slider-1" id="slider-1" value="60" min="0" max="100" />

将隐藏实际标签“输入 slider :”文本,同时保留其功能。然后,您可以将“输入 slider :”作为常规文本添加到输入标记前面,单击该标记时不会调用任何内容...因为它现在只是文本。我经常使用这种方法来重新控制输入标 checkout 现位置的样式格式化选项,而不是使用实际标签标签文本的非常有限的格式化选项。

此外,请记住不要陷入 SO 上存在的最大思维陷阱之一,那就是您必须使用 jQuery 或普通 javascript,而实际上您可以混合使用它们并同时使用两者时间,为您带来 jQuery 库的人们鼓励混合使用 jQuery 和普通 JavaScript。不要被引导相信你必须使用其中一个,并且使用两者是最好的方法,因为更多的原因(需要一篇文章来讨论所有有效的观点)比我可以动摇的更多。 p>

关于javascript - 禁用 jQuery 移动 slider 点击时的文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18664054/

相关文章:

javascript - 解析 kml 文件以在谷歌地球中显示多个地标

javascript - 如何捕获在react-admin中创建的记录的新id?

javascript - React 上的缩放模块 d3 出现问题

java - Android - 使用 jQuery Mobile 将简单的用户输入表单 web View 发送到后端 java

javascript - 输入类型文件在 jquery ajax 中未序列化

javascript - 模拟raphael js路径上的点击事件

Jquery - 查找 $(this) 是什么元素

jquery - 如何将元素放置在 float 图像上?

jquery - jQuery Mobile 中是否有 "warning"元素?

javascript - 如何在 jQuery Mobile 中更改按钮文本