jQuery Mobile:呈现新元素,但不触发操作

jQuery Mobile:呈现新元素,但不触发操作,jquery,events,jquery-mobile,mobile,triggers,Jquery,Events,Jquery Mobile,Mobile,Triggers,我在做一些动态创建的工作元素时遇到问题 在一个页面上,我创建了每个按钮,每个按钮都有一个“date wgbn id”,并使用class.remPromotor触发操作 页面中已有的按钮通常会触发动作,但动态添加的新按钮不会触发这些动作 每次添加按钮时,都会动态拨打电话。触发器(“创建”),它使样式应用于按钮,但不应用动作 我的HTML: <div data-role="content" class="area"> <div class="pagina">

我在做一些动态创建的工作元素时遇到问题

在一个页面上,我创建了每个按钮,每个按钮都有一个“date wgbn id”,并使用class.remPromotor触发操作

页面中已有的按钮通常会触发动作,但动态添加的新按钮不会触发这些动作

每次添加按钮时,都会动态拨打电话。触发器(“创建”),它使样式应用于按钮,但不应用动作

我的HTML:

<div data-role="content" class="area">
        <div class="pagina">
            <div data-role="header" data-theme="c"><h2><?php echo $_GET['acao']; ?></h2></div>
            <div><a href="acoes.php" data-role="button" data-icon="arrow-l">Voltar para ações</a></div>
            <hr>
            <div data-role="header" data-theme="e" align="center">
                Promotores desta ação:<br>
                <span style="font-style: italic; color: red; font-size: .9em; font-weight: normal !important;">Clique para remover</span>
            </div>
            <!-- lista os promotores -->

            <div id="proDentro">
                <?php foreach($a->query("select escalas.*, promotores.nome from escalas, promotores where escalas.id_acao = ".$_GET['id']." and promotores.id = escalas.id_promotor order by promotores.nome") as $pro){ ?>
                <a href="#" data-role="button" data-icon="minus" data-wgbn-id="<?php echo $pro['id']; ?>" id="pro<?php echo $pro['id']; ?>" class="remPromotor"><?php echo $pro['nome']; ?></a>
                <?php } ?>
            </div>
            <p>&nbsp;</p>
            <hr>
            <div data-role="header" data-theme="e" align="center">
                Promotores fora da ação:<br>
                <span style="font-style: italic; color: green; font-size: .9em; font-weight: normal !important;">Clique para remover</span>
            </div>
            <div id="proFora">
                <?php foreach($a->query("select * from promotores where status = 1 order by nome") as $pro){ ?>
                <a href="#" data-role="button" data-icon="plus" data-wgbn-id="<?php echo $pro['id']; ?>" data-wgbn-acao="<?php echo $_GET['id']; ?>" id="fora<?php echo $pro['id']; ?>" class="addPromotor"><?php echo $pro['nome']; ?></a>
                <?php } ?>
            </div>
        </div>
    </div>
<!-- /content -->
文件名为funcoes.php brm simple:

    <?php
    // pega os dados do usuario
    require_once("Modelo2.php");
    $a = new Modelo2();

    $opc = $_GET['opc'];

    // adiciona o cara na acao
    if ($opc == "addEscala"){
        $id_acao = $_GET['acao'];
        $id_promotor = $_GET['promotor'];

        $arr;
        $arr['id_acao'] = $id_acao;
        $arr['id_promotor'] = $id_promotor;
        if ($id = $a->insert("escalas",$arr)){
            $tmp = $a->query("select escalas.*, promotores.nome from escalas, promotores where escalas.id = $id and promotores.id = escalas.id_promotor");
            $tmp = $tmp[0];
            echo '<a href="#" data-role="button" data-icon="minus" data-wgbn-id="'.$id.'" id="pro'.$id.'" class="remPromotor">'.$tmp['nome'].'</a>';
        }
    }

    // remove o cara da acao
    if ($opc == "delEscala"){
        $id = $_GET['escala'];

        if ($a->delete("escalas","id = $id")){
            echo 1;
        } else {
            echo 0;
        }
    }
?>

基本上.trigger(“create”)可以设置新按钮的样式,但我不能触发链接到class.remPromotor的操作

有人能帮我吗?

当您使用
$(选择器)时。单击
,这只适用于页面中已存在的元素。对于动态元素,应该使用类似于
$('body')的内容。那么,对于您的案例更改:

$(".addPromotor").click(function(e) {
    var id = $(this).attr('data-wgbn-id');
    var acao = $(this).attr('data-wgbn-acao');
    $.get("funcoes.php?opc=addEscala&acao="+acao+"&promotor="+id, function(data){
        $("#proDentro").append(data).trigger('create');
    },'html');
    return false;
});
为了


谢谢@aguardiencico,我想我该如何使用JQM的1.3.1版“.on()”不再有效了,我想知道为什么会出现这种可能性。但是现在有了你的提示,它工作得很好!可能重复的
$(".addPromotor").click(function(e) {
    var id = $(this).attr('data-wgbn-id');
    var acao = $(this).attr('data-wgbn-acao');
    $.get("funcoes.php?opc=addEscala&acao="+acao+"&promotor="+id, function(data){
        $("#proDentro").append(data).trigger('create');
    },'html');
    return false;
});
$('body').on('click', ".addPromotor", function(e) {
    var id = $(this).attr('data-wgbn-id');
    var acao = $(this).attr('data-wgbn-acao');
    $.get("funcoes.php?opc=addEscala&acao="+acao+"&promotor="+id, function(data){
        $("#proDentro").append(data).trigger('create');
    },'html');
    return false;
});