Javascript JQueryMobile:stopPropagation()在href单击时使空白页闪烁

Javascript JQueryMobile:stopPropagation()在href单击时使空白页闪烁,javascript,html,css,jquery-mobile,rhomobile,Javascript,Html,Css,Jquery Mobile,Rhomobile,我正在开发RhomobileAppand,我在页面转换方面遇到了很多麻烦 最后,我决定关闭它们以获得更好的用户体验。除了我在可折叠元素中有一个按钮之外,每个按钮点击都能完美地工作。 为了使按钮上的点击事件不会被解释为点击可折叠文件,我使用了以下js代码,我怀疑这是造成问题的原因: $(document).on('pagebeforeshow', '#index',function(e){ $('.details').bind('click', function (e) {

我正在开发RhomobileAppand,我在页面转换方面遇到了很多麻烦

最后,我决定关闭它们以获得更好的用户体验。除了我在可折叠元素中有一个按钮之外,每个按钮点击都能完美地工作。 为了使按钮上的点击事件不会被解释为点击可折叠文件,我使用了以下js代码,我怀疑这是造成问题的原因:

 $(document).on('pagebeforeshow', '#index',function(e){ 
   $('.details').bind('click', function (e) {      
     e.stopPropagation();
     e.stopImmediatePropagation();
   });
 });
在HTML中:

<div data-role="page" id="index">
Here go headers & navbar and other stuff
</div>
<div data-role="content">
   <div data-role="collapsible-set" class="uurbon-block">
    <div data-role="collapsible" data-collapsed="false">
      <h3 data-position="inline"><p class='alignleft'>Collapsible title</p><div style="clear: both;"></div>        
        <span style="float:right;" class="button-span">
            <a href="some_url.html" data-role="button" data-mini="true" data-inline='true' data-icon="star" data-iconpos="left" class="details" data-transition="none">
              Button
            </a>     
        </span>  
      </h3>
    </div>
  </div>
</div>

这里是标题和导航栏以及其他东西

可折叠标题

这将导致在转换前显示空白页1-2秒。我会寻找修复方法,但如果没有,我会很高兴看到页面变黑(我的应用程序背景也是黑色的,所以这个闪烁不会太明显)。 注意:我已经尝试过在css中设置身体背景颜色,但不起作用。
谢谢你的想法

正如Omar所指出的,如果您想在可折叠文件中放置一个按钮,防止可折叠文件在同一浏览器中处理页面时捕获点击,正确的方法是(注意,这可能只适用于RhoMobile,但值得在其他基于jquerymobile的框架上尝试): 并避免在新浏览器中尝试打开此文件时使用:

javascript:

$(document).on('pagebeforeshow', '#index',function(e){ 
    $('.details').bind('click', function (e) {
            e.stopPropagation();
            $.mobile.changePage("your_page");
    });
});
HTML: 钮扣


请注意href=“javascript:;”。我第一次将其设置为“#”和“”,但这不起作用。

我对可折叠文件也有类似的问题,它们似乎在没有您期望的类/ID的情况下生成了几个不同的元素,并且您的事件从未触发。也许这个答案会帮助你:我可能没有正确地表达自己:我用上面的JS代码修复了我的evet没有触发。问题是,由于某种原因,它会导致空白页在加载下一页之前闪烁1-2秒。PD:我可以在RhoMobile日志文件中看到,按钮导致目标在新页面中呈现(而不是转换),我如何强制它在同一页面上打开它?Stopropagation导致了这一点,为什么要使用它?链接/按钮应该正常工作,即使在可折叠的内部。我在没有停止播放的情况下尝试过,按钮只会折叠/扩展可折叠的。关于这一点,stackoverflow中有几个问题。一个例子:试试这个
$('.details').bind('click',函数(e){e.stopimediatepropagation();$.mobile.changePage(“file.html”,{transition:'slip});})仍然存在一个问题:我希望能够在javascript代码上加载一个动态URL,所以我尝试在标记中放入一个变量,并在javascript上读取它。有几次javascript需要运行才能更改页面,但是javascript中的varaible只能从第一个标记获取值