Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery移动应用程序中仅显示和隐藏一个页面时触发事件_Javascript_Jquery Selectors_Jquery Mobile_Jquery - Fatal编程技术网

Javascript 如何在jQuery移动应用程序中仅显示和隐藏一个页面时触发事件

Javascript 如何在jQuery移动应用程序中仅显示和隐藏一个页面时触发事件,javascript,jquery-selectors,jquery-mobile,jquery,Javascript,Jquery Selectors,Jquery Mobile,Jquery,好的,我开始使用jQuery Mobile。我远非javascript专家。jquerymobile非常酷,但它让我在这个问题上难倒了 当某个页面显示时,我需要运行一些代码,当它隐藏时,我需要运行另一个代码——但只需要层次结构的某个页面。我知道如何使用pagecreate和pageshow事件(并使用它们处理需要在每个页面上运行的代码)。但是,我需要能够检测特定页面何时显示以及何时隐藏 我试过什么了?我在页面的以下标记上放置了一个自定义属性: <div data-role="content

好的,我开始使用jQuery Mobile。我远非javascript专家。jquerymobile非常酷,但它让我在这个问题上难倒了

当某个页面显示时,我需要运行一些代码,当它隐藏时,我需要运行另一个代码——但只需要层次结构的某个页面。我知道如何使用pagecreate和pageshow事件(并使用它们处理需要在每个页面上运行的代码)。但是,我需要能够检测特定页面何时显示以及何时隐藏

我试过什么了?我在页面的以下标记上放置了一个自定义属性:

<div data-role="content" myspecialattribute="true">

然后在pageshow事件中,我使用jqmData()搜索该元素。这是成功的,第一次遇到页面,然后就不工作了。由于JQM加载页面的方式,因此,即使我移动到其他页面,该标记和该属性也总是会在dom中找到,因为JQM使用聪明的ajax显示/隐藏页面


我花了好几个小时寻找解决方案——但我的javascript技能根本不存在。我认为这很容易,所以我觉得寻求帮助有点愚蠢。

您需要在页面中添加一个id,并使用live live()触发所需的事件,live示例:

JS:

HTML:


    导航
    导航

Hey感谢您快速而详细的回复。我会尝试一下,然后再给你回复。我遇到的一个复杂问题是,我正在使用一个布局引擎(Razor)和_layout.cshtml文件,就像使用一个普通的“page”div一样,所以我希望使用“content”div来实现这一点。但是如果这样做有效,那么我可能会放弃共享布局文件。+1,检查。嗯,那很有效,谢谢你。是的,我需要将“page”div从主布局页移走,但效果很好。非常感谢。
$('#page2').live('pageshow',function(event, ui){
    alert('Alert for page 2 only');
});
<div data-role="page" id="home"> 
    <div data-role="content"> 

        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f"> 
            <li data-role="list-divider">Navigation</li> 
            <li><a href="#page2">Page 2</a></li> 
        </ul> 

    </div>
</div>

<div data-role="page" id="page2"> 
    <div data-role="content"> 

        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f"> 
            <li data-role="list-divider">Navigation</li> 
            <li><a href="#home">Home Page</a></li> 
        </ul> 

    </div>
</div>