javascript - ListView 上动态生成元素的单击事件

标签 javascript jquery html

我尝试将点击事件应用于动态生成的元素。

这个例子运行良好。 http://jsfiddle.net/PzSYM/361/

但是我的代码不起作用。 http://jsfiddle.net/EurT4/8/

这是与上面链接相同的代码。

HTML

<ul id="timer_listview" data-role="listview">
    <li class="timerList">
        <button>on</button>
        <span class='status'>play</span>
    </li>
    <li class="timerList">
        <button>on</button>
        <span class='status'>play</span>
    </li>
    <li class="timerList">
        <button>on</button>
        <span class='status'>play</span>
    </li>
</ul> </div>

JavaScript(Jquery)

var counter = 0;

$('#addButton').click(function () {
    $('#console').text('new line added');
    var text = '<li class="timerList"><button>new' + (++counter) + '</button><span class="status">play</span></li>';
    $('#timer_listview').prepend(text);
    $('#timer_listview').listview("refresh");
});

var play = 'play';
$('.timerList').on('click', 'button', function () {
    $('#console').text('clicked');

    var status = $(this).parent().find('span.status');
    if (status.text() == play) {
        status.text('pause');
        $('#console').text('Status Changed');
    }
});

CSS

.status { display: none; }

我很 panic 为什么它不起作用。 :( 感谢您阅读我的问题。

p.s 随时欢迎编辑我的文章。

<小时/>

更新 我解决了这个问题。 http://jsfiddle.net/EurT4/10/ 。 重点是使用最近的 parent 。 感谢米林德·阿南特瓦。

最佳答案

您正在动态添加元素.timerList。您需要使用:

$('#timer_listview').on('click', '.timerList', function() {
        $('#console').text('clicked');              

var status = $(this).parent().find('span.status');
if (status.text() == play) {     
    status.text('pause');        
    $('#console').text('Status Changed');              
}});

关于javascript - ListView 上动态生成元素的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649117/

相关文章:

php - MySQL 的 if 语句

javascript - Angular UI Router - $stateParams 有属性但无法访问它们

javascript - 单击提交按钮时表单验证无法正常工作?

html - 灵活高度页眉和页脚 div 之间的灵活 div 高度

jQuery 跨多个字段进行验证

javascript - 按值查找数组中的对象并更新整个对象

html - 输入渲染文本大于 CSS 中定义的大小

javascript - 更改不会显示在谷歌云计算引擎虚拟机上

javascript - 在 Cordova/Onsen 中引用模板化 HTML 元素

javascript - 为什么函数默认返回 `undefined` 而不是 `null`?