【问题标题】:jQuery Mobile - Disable Clicking Collapsible HeaderjQuery Mobile - 禁用单击可折叠标题
【发布时间】:2012-10-24 20:16:25
【问题描述】:

我希望能够在集合中禁用打开/关闭可折叠项,而不是用户将单击打开元素内的继续按钮,该按钮将进行验证,然后在准备好时打开下一个元素。我基本上将可折叠套装用作向导。我一直在搜索文档,发现在崩溃发生时我可以在哪里捕获事件,但我找不到如何取消它。任何建议,或其他向导类型控件的建议可以完成我所说的,我将不胜感激!

【问题讨论】:

  • 如果您能捕捉到该事件,您是否尝试过停止对该事件的进一步传播? api.jquery.com/event.stopPropagation
  • 我会看看这个,如果它有效,我会告诉你,你可以把它作为一个答案,所以我可以选择它。
  • 我绑定了事件并设置了一个断点并且代码正在执行,事件不是空的,所以它正在获取一些东西,但是 stopPropagation 没有任何效果。我想也许我只是得到一个发件人而不是实际的事件,实际上在 Chrome 中,可折叠已经在断点被击中之前显示,所以我认为我的事件绑定发生在扩展/折叠面板的 jquery 之后。

标签: jquery jquery-mobile


【解决方案1】:

经过一番研究,我终于找到了答案。在这里发布它,希望它对任何试图将手风琴变成巫师的人有所帮助。

我的折叠是这样设置的:

 <div data-role="collapsible" data-collapsed="false" id="col1" >
     <h3>Title</h3>
     <p>
         <input type="text" />
         <input type="button" value="Next" onclick="nextClicked(1);" />
     </p>
 </div>

要停止点击工作但保持能够触发展开,我使用了这个 jquery:

$(document).ready(function () {
    $("#col1 h3 a").click(function (event) {
        return false;
    });
});

我曾尝试使用 preventDefault 和 stopPropagation 但这些都没有。显然 return false 和那两个一样做了一些额外的工作。

编辑:我发现这在浏览器中有效,但不能在移动设备上阻止它,为了阻止它在移动设备上,你还必须捕获点击事件,但要小心,你必须在标题上而不是整个可折叠或可折叠中的任何元素(例如按钮)也不会注册。这是我使用的代码:

$("#col1 h3").on("tap", function (event, ui) {
    return false;
});

【讨论】:

  • 已确认,与使用 preventDefault() 相比,添加 'return false' 也对我有用。 . .谢谢。
【解决方案2】:

变化

<div data-role="collapsible">

<div data-role="collapsible" class="ui-disabled">

为我在图形和功能上禁用标题。

http://jsfiddle.net/NY63z/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    相关资源
    最近更新 更多