on()事件可以在另一个表中的表中使用吗?

时间:2012-05-10 22:34:32

标签: jquery dom click

这是代码

var $p = $("#tabla_inscripcion");
$p.load("Cursos_Existentes.php");

据说一个名为2列的表,另一个按钮。后:

$p.on('click','#tabla_cursos button.curso_ex',function(){
var curso = $(this).attr("id");
curso = curso.replace('_ver','');
if($(this).val() == 'no'){
$(this).val("si");
$("#"+curso).after('<tr class="cursos_'+curso+'"></tr>');
$('.cursos_'+curso).load("Horarios_Cursos.php?curso="+curso);
}
else{
$(this).val("no");
$(".cursos_"+curso).remove();
}
});

该按钮将在您单击的行下方添加一行,该行将加载一个包含3列的表,其中一列将有一个按钮。如果你再次点击我被淘汰的那一行。

问题如下:

$p.on('click','#tabla_cursos #hor_cur tr td button.inscribir',function(){
$.ajax({
type: post,
url: "inscribir_curso.php",
data: "id_curso="+id, 
success: function(){
$("#tabla_inscripcion").load("Cursos_Existentes.php");
}
});

应该点击使用的按钮是由ajax发送的一个变量帖子,没有错误只会在没有按钮所在的表行的情况下再次充电,但按钮什么都不做,有什么问题?

我正在使用翻译,抱歉,如果不理解的话。

更新2012/05/11

好吧,几乎所有内容都是在html中完成的

<div class="tabla_inscripcion" id="tabla_inscripcion" align="center">
</div>

<?php
header("Content-Type: text/html;charset=utf-8");
include 'Conexion.php';

session_start();
$id_alumno = $_SESSION['id_login'];

$sql = "SELECT DISTINCT curso FROM cursos WHERE id_curso NOT IN (SELECT id_curso FROM inscripsion WHERE id_alumno=$id_alumno)";

$result = mysql_query($sql, $conexion);

echo '<table id="tabla_cursos">';
echo '<tr class="encabezado"><td>CURSOS</td></tr>';

if(mysql_num_rows($result) != 0){
    while($count = mysql_fetch_array($result)){
        echo '<tr id="'.str_replace(' ', '_', $count["curso"]).'">';
        echo '<td>'.$count["curso"].'</td>';
        echo '<td><button value="no" class="curso_ex" id="'.str_replace(' ', '_', $count["curso"]).'_ver">ver</button></td>';
        echo '</tr>';
    }
}
else{
    echo '<tr><td>no hay cursos disponibles</td></tr>';
}
echo '</table>';
?>

这是创建具有三列

的表的代码
<?php
header("Content-Type: text/html;charset=utf-8");
include 'Conexion.php';

$curso = str_replace('_', ' ', $_GET["curso"]);
$i=0;

$sql = "SELECT cursos.id_curso, curso, dias, horario, nombre 
    FROM cursos INNER JOIN instructor 
    ON cursos.id_instructor = instructor.id_instructor 
    AND curso='$curso'";

$result = mysql_query($sql, $conexion);


echo '<td>';
echo '<table id="horarios_cur">';
echo '<tr>
    <td id="dia_cur">Días</td>
    <td id="hor_cur">Horario</td>
    <td id="nom_prof">Profesor</td>
    <td id="but_insc"></td>
  </tr>';
if(mysql_num_rows($result) != 0){
   while ($count = mysql_fetch_array($result)){
  echo '<tr id="'.$curso.'_'.$i.'">';
  echo '<td id="hor_cur">'.$count["dias"].'</td>';
  echo '<td id="hor_cur">'.$count["horario"].'</td>';
  echo '<td id="nom_prof">'.$count["nombre"].'</td>';
  echo '<td id="but_insc"><button class="inscribir" id="'.$count['id_curso'].'">inscribir</button></td>';
  echo '</tr>';
  $i++;
}
}
else{
  echo '<tr><td id="hor_cur">'.$curso.'</td></tr>';
}
echo '</table>';
echo '</td>';
?>

我可能无法解释,问题不在于代码失败,但按钮没有反应,因为代码没有找到它

我觉得很长,但我很感激回复

1 个答案:

答案 0 :(得分:0)

$p.on('click','#tabla_cursos #hor_cur tr td button.inscribir', function(){
    $.ajax({
        type: "POST",
        url: "inscribir_curso.php",
        data: "id_curso="+id, 
        success: function(){
           $("#tabla_inscripcion").load("Cursos_Existentes.php");
        }
    });
});

不确定它是否只是你帖子中的拼写错误,但是你在“POST”上缺少引号,以及点击功能的结尾。你的选择器似乎过于冗长和复杂,但没有任何HTML,很难判断它是否正确。