jquery - 无法引用动态添加的 jQuery Mobile 元素

标签 jquery html jquery-mobile

我正在添加一个可折叠按钮和一个简单的 <a>元素到我的主要 html。 代码如下:

var elements = "";

$('.button').bind('tap', function() {
    elements += "<div class='my_clicker' data-role='collapsible'><h4>heading1</h4><h4>heading2</h4></div>";
    elements += "<a href='#' class='my_clicker'>Click me!</a>";
    $(".button_container").html(elements).trigger('create');
};

$(document.body).on('tap', '.my_clicker' ,function(){
    playAudio('success');
}); 

当我点击 <a>元素音频工作正常所以看起来一切正常,除了“.my_clicker”没有引用我的可折叠元素,即找不到它。因此,常规 jQuery 引用似乎有效,但 jQuery Mobile 元素有些不同,无法轻松引用。即使我在 $(document.body).on() 中使用“div”而不是“.my_clicker”功能仍然是所有 div 元素发出声音,但我的可折叠按钮没有。 (我也试过 'a' 和 'h4' 而不是 '.my_clicker')

在浏览器中检查我的 html 元素时,当我单击可折叠元素时,表达式 ::before 被突出显示,而不是 <div>我已经添加。

编辑: 事实证明,尽管不能在浏览器中运行,但上面的代码实际上可以在我的平板电脑上运行(作为 apk)!尽管如此,还是很高兴知道如何使其在浏览器中工作,因为 jQuery Mobile 也可用于 Web 应用程序。

最佳答案

您是否尝试过使用 live() 而不是 on() ?它适用于动态创建的元素。

http://api.jquery.com/live/

关于jquery - 无法引用动态添加的 jQuery Mobile 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30663007/

相关文章:

javascript - 数据属性事件而不是类名

javascript - Jquery UI slider 和百分比不起作用

javascript - 如何创建单个对象并在其中推送多个 key 对值?

html - 避免 html 元素之间的换行

javascript - 将验证集成到 jQuery 函数中

javascript - jQuery 手机 : How to invoke this (default) error loading page message?

javascript - 使用基于数据的 jsrender 设置 div 样式

javascript - 未知的 AngularJS 错误(我是初学者)

javascript - 如何使用 'change' jquery 2.1.4 显示选择标签?

google-maps - JQuery Mobile 和 Google map 无法正确呈现