0

我有一个默认值为“2”的输入元素:

<input type="text" class="chapter" value="2" />

使用 jQuery mobile 时显示如下:

<div class="ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c">
    <input type="text" class="chapter ui-input-text ui-body-c" value="2">
</div>

每次用户更改值时,我都想做一些事情,所以我说:

$('.chapter').change(function(i, el) { alert("coding is epic"); });

但是,当我将值更改为“5”并单击该元素时,什么也没有发生。检查开发人员工具显示该值仍然是“2”,即使屏幕上显示“5”。

奇怪的是它确实适用于以下元素:

<input id="UploadFile" type="file" name="datafile">

当要求使用时:

$('#UploadFile').change(function(e){ //aaaaargh! });

当这个值发生变化时,我该怎么做?此外,页面上有很多元素class="chapter",所有类型均为<input>,我尝试使用$('.chapter').each().change(function(i, el) {

4

1 回答 1

0

凯文 B 写了一条评论:

它不起作用的唯一原因是,当附加事件处理程序时,您正在与之交互的输入不存在

你的天才凯文!它不起作用,因为它<input>是在页面上动态加载的,并且在 document.load 函数运行时不存在。

我应该改变

$('.chapter').change(function(i, el) { #### });

$('.container').on('change', '.chapterPageFrom', function() { #### });

史诗!

于 2013-10-03T15:10:14.037 回答