jquerymobile动态创建一个单选按钮并监听点击事件

jquery mobile dynamically create a radio button and listen to click event

本文关键字:单选按钮 监听 事件 一个 创建 动态 jquerymobile      更新时间:2023-09-26

令人惊讶的是,我被困在了一个非常不寻常的地方,试图创建一个单选按钮并收听它上的点击事件。

HTML页面如下:

<h4><b>Header</b><span class="pull-right app-selected-title"></span></h4>
<fieldset data-role="controlgroup" class="app-ct-child-holder"></fieldset>

javascript是

<script type="text/javascript">
    $(document).on("pagecreate","#pageOne",function(){
        $(".app-ct-child-holder").append('<label class="app-radio"><input type="radio" class="app-radio-chk" name="t" data-nm="test_name" id="1" data-tl="Title">Click me</label>');
        $(".app-ct-child-holder").controlgroup("refresh");
        $(".app-ct-child-holder").trigger("create");
        $(document).on('click', '.app-radio-chk', function() {
            alert('hi');
        });
    });
</script>

在我的脑海中,我有以下包含的

<link rel="stylesheet" href="css/jquery.mobile.structure-1.4.5.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>

我不明白我错过了什么。但警报并没有到来。我是不是遗漏了什么?

问题不是动态添加的单选按钮。问题是您无法访问输入字段。这是因为jqm对元素进行样式化。

<input>元素具有css样式z-index: 1<label>元素具有css风格z-index: 2正因为如此,您在屏幕上看不到输入字段。如果你看不到一个元素,你就不能点击它。将你的点击监听器更改为标签,一切都会正常工作。