【问题标题】:jQuery (mobile) not triggering .change event on Phonegap appjQuery(移动)未在 Phonegap 应用程序上触发 .change 事件
【发布时间】:2013-04-11 12:06:01
【问题描述】:

(因为 2 天我对此没有任何问题...)

我有一个多页布局,在我的一个页面中,我的结构如下:

<div id="view_offer" data-role="page">
        <div data-role="header">
            <h1>Edit Offer</h1>
        </div>
        <div data-role="content">
            <p><label><input id="auto_renew" type="checkbox" name="checkbox-0">Auto renew?</label></p>
        </div>
    </div>

在我关闭正文标签之前使用以下脚本(按此顺序):

    <script src="js/cordova-2.5.0.js"></script>
    <script src="js/jquery-1.8.2.min.js"></script>
    <script src="js/jquery.mobile-1.3.0.min.js"></script>
    <script src="js/home_m_scripts.js"></script>

我的 home_m_scripts.js 文件:

$("#auto_renew").change(function(){
    alert("Changed!");
});

我的更改事件没有触发,我在这里不知所措。

【问题讨论】:

  • 你能改成这样吗:$(document).on('change','#auto_renew',function(){ alert("Changed!"); });
  • 这行得通,但我觉得很奇怪,我可能对 jquerymobile 有一个完全错误的想法,但我认为当我们进入一个新页面时所有内容都已加载...
  • 我会把它作为一个描述的答案

标签: javascript cordova jquery-mobile jquery


【解决方案1】:

从以下位置更改您的代码:

$("#auto_renew").change(function(){
    alert("Changed!");
});

收件人:

$(document).on('change','#auto_renew',function(){ 
    alert("Changed!"); 
});

当您像这样绑定事件时,它将充当事件委托。执行此绑定时,对象基本上不需要存在于 DOM 中。

【讨论】:

  • 我怎样才能在 .on 事件中定位一个新的 div 呢?想象一下我在“#auto_renew”下有一个“#stuff” div,我该怎么做 $("#stuff").html("stuff"); ,这个 jquery 移动页面结构令人困惑。
  • 知道了,例如,如果你有一个 id 为 auto_renew 的事件,并且想在一个子 div 上做一些事情,你会这样做 $(this).find('# stuff')... 或者你可以这样做: $('#auto_renew').find('#stuff') 甚至像这样 $('#auto_renew #stuff')
猜你喜欢
  • 1970-01-01
  • 2016-01-09
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多