使用PHP和jquery打印元素无法识别附加到它们的事件

使用PHP和jquery打印元素无法识别附加到它们的事件,php,jquery,event-handling,Php,Jquery,Event Handling,我有一个PHP文件,它可以打印一些div和button元素,它们和我第一次打印的是同一个类,它们都附带了jquery事件click,但是打印的没有,为什么?有人能给我解释一下吗? PHP登录页代码:(使用jquery的元素单击事件处理) 仅在加载DOM时对内容有效。 如果您通过AJAX加载内容并希望处理JQuery事件,则需要将其更改为: $(document).on('click', '.compliance', function(event) {}) 这样,click事件也可以在ajax加

我有一个PHP文件,它可以打印一些div和button元素,它们和我第一次打印的是同一个类,它们都附带了jquery事件click,但是打印的没有,为什么?有人能给我解释一下吗? PHP登录页代码:(使用jquery的元素单击事件处理)

仅在加载DOM时对内容有效。 如果您通过AJAX加载内容并希望处理JQuery事件,则需要将其更改为:

$(document).on('click', '.compliance', function(event) {})
这样,click事件也可以在ajax加载的内容上工作

    $output = '';

//print_r($questions);

$i=$_POST['last']+1;
//echo $i."\n";
foreach ($questions as $question) {
    //echo $i;
    $output.= '<div class="question" id="'.$i.'">
        <div class="id">
            <h3 class="id-header">Domanda #'.$i.'</h3>
            <button id="minacce-button" class="btn btn-danger btn-rounded"> Minacce Associate &nbsp;<i class="fas fa-info-circle"></i></button>
        </div>
        <div class="testo">
            <p>'.$question['testo'].'</p>
        </div>
        <div class="valutazione">
            <div class="btn-group shadow-0" role="group">
              <button type="button" class="btn btn-danger compliance" id="'.$question['id'].'" value="Non Compliance" data-color="dark">
                Non Compliance
              </button>
              <button type="button" class="btn btn-warning compliance" id="'.$question['id'].'" value="Da Verificare" data-color="dark">
                Da Verificare
              </button>
              <button type="button" class="btn btn-success compliance" id="'.$question['id'].'" value="Compliance" data-color="dark">
                Compliance
              </button>
                <input type="hidden" name="value_question" id="v'.$question['id'].'" value="1">
            </div>
        </div>
        <div class="container-1">
            <div class="spiegazione">
                <p class="spiegazione-header">Spiegazione &nbsp;<i class="fas fa-info-circle"></i></p>

                <p class="spiegazione-text">
                    '; if($question['spiegazione'] != '') $output .= $question['spiegazione']; else $output .= 'Informazioni su questa domanda non disponibili!';
                $output .= '</p>
            </div> &nbsp;
            <div class="contromisura">
                <p class="contromisura-header">Contromisura &nbsp;<i class="fas fa-check-circle"></i></p>
                <p class="contromisura-text">';
                    if($question['contromisura'] != '') $output .= $question['contromisura']; else $output .='Non ci sono ancora contromisure disponibili!';
                $output .= '</p>
            </div>
        </div>
    </div>
    <hr>';
    $i++;
} //unset($questions);

echo $output;
$(".compliance").on("click", function(event) {
var id_domanda = $(this).attr("id");
var valutazione = -1;

//alert("Testo bottone cliccato:-" + $(this).val() + "-");

switch ($(this).val()) {
  case 'Non Compliance':
      valutazione = 0;
  break;
  case 'Da Verificare':
      valutazione = 1;
  break;
  case 'Compliance':
      valutazione = 2;
  break;
  default:
      valutazione = -1;
}

// Assegnazione valutazione a input valutazione domanda
$("#v"+id_domanda).val(valutazione);
$("#q"+id_domanda).val(id_domanda);

alert("Valutazione assegnata: " + valutazione);

alert("Riepilogo:\nID Domanda: " + $("#q"+id_domanda).val() + "\nValutazione: " + $("#v"+id_domanda).val() );})
$(".compliance").on("click",
$(document).on('click', '.compliance', function(event) {})