【问题标题】:HTML id is not recognizing in JQuery for multiple onsen-page多个温泉页面在 JQuery 中无法识别 HTML id
【发布时间】:2016-01-15 19:38:58
【问题描述】:

我正在使用 onsen UI 在 monaca 尝试一个应用程序。我有多个页面并使用 Onsen Navigator 在我的页面中导航。

第一页有登录按钮和注册按钮,可打开(推送)带有用户名和电子邮件信息的注册页面。

我正在尝试使用 jQuery 在 ons.ready(function(). 当我单击第一页(登录)上的登录按钮时,jQuery 会触发所需的功能,但是当我尝试单击注册按钮(在注册页面中)时,它不会触发该功能。

   <script>
     ons.bootstrap();
     ons.ready(function() {
       // Add another Onsen UI element
       console.log('I am here');
       $(function() {
         $("#LoginBtn").click(onLoginBtn);
         $("#RegisterBtn").click(onRegisterBtn);
       });
     });
     function onRegisterBtn()
     {
     console.log('Register Button in register page');
     };
     function onLoginBtn()
     {
     console.log('Login Button in Login page');
     };
   </script>

然后我也定义了两个函数。我正在使用两个不同的 html(login.html 和 register.html)并推送页面。

index.html:

<body>
    <ons-navigator var="QubecNavigator" page="login.html">
    </ons-navigator> 
</body> 

login.html:

<ons-page id="loginPage">
  <div class="login-form">
    <input id="login_phone" type="tel" placeholder="Mobile" class="text-input--underbar" value="">
    <input id="login_password" type="password" placeholder="Password" class="text-input--underbar"  value="">
    <br><br>
    <ons-button id="LoginBtn" modifier="large--cta" class="login-button">Log In</ons-button>
    <br><br>
    <ons-button modifier="quiet" class="Register-button" onclick="QubecNavigator.pushPage('register.html')" >Register</ons-button>
  </div>
</ons-page>

注册.html:

<ons-page id="registerpage">
  <ons-toolbar>
    <div class="center">Log In</div>
    <div class="left">
      <ons-back-button>Back</ons-back-button>      
    </div>
  </ons-toolbar>
  <div class="register-form">
    <input id="reg_phone"  type="tel" class="text-input--underbar" placeholder="Mobile Number" value="">
    <input id="reg_email" type="email" class="text-input--underbar" placeholder="Email" value="">
    <input id="reg_password" type="password" class="text-input--underbar" placeholder="Password" value="">
    <br><br>
    <ons-button id="RegisterBtn" modifier="large--cta" class="register-button">Register</ons-button>
    <br><br>
  </div>
</ons-page>

【问题讨论】:

  • 您可能需要添加标记和函数声明以供任何人提供帮助
  • 用代码sn-ps修改问题
  • 创建plnkr.co 一起玩有帮助!!它增加了获得准确和快速答案的机会。

标签: jquery onsen-ui monaca


【解决方案1】:

我认为在您的代码中,当您将功能绑定到按钮时,仅存在 #LoginBtn id。 #RegisterBtn 还没有被推送,所以$('#RegisterBtn') 可能返回 null。最简单的方法如下:&lt;ons-button id="RegisterBtn" onclick="onRegisterBtn" ... &gt;

您也可以在pushPage 回调中执行此操作:myNavigator.pushPage('register.html', onTransitionEnd: function() { $("#RegisterBtn").click(onRegisterBtn); });

希望对你有帮助!

【讨论】:

  • 感谢您的 cmets ,我没有尝试过,但我认为它会起作用。我将我的应用程序完全移动到 Angular 并实现了功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
相关资源
最近更新 更多