出于某种原因,我的jQuery代码忽略了PHP生成的按钮(如果php是内联完成的)。
这是不起作用的代码(jQuery单击不触发):
$('button').click(function(){
alert("CLICKED");
var btnNum = $(this).attr('value');
$(this).attr('disabled', 'disabled');
$.post("../update_rsvp.php", {id : btnNum}).done(function( data ) {
var spanId = "#rsvpd-"+btnNum;
$(spanId).html("YES");
});
});
好吧,从技术上讲,该代码有效。但是,仅当我在html标头之前生成我的按钮时。如果我在标题之后生成它,则它不起作用。这是他的PHP代码:
<?php
if( $cnt > 0 )
{
$where = array(
"code" => $code
);
$what = array('inv_id','first_name', 'last_name', 'rsvpd');
$count = $db->count($where, 'invited');
$result = $db->select_where($where, 'invited' , $what);
echo '<br />';
echo '<br />';
echo "You have $count invitations: <br />";
echo "<ul>";
echo "";
while($row = $result->fetch_assoc())
{
if($row['rsvpd'] == 1)
{
$rsvpd = 'YES';
$disabled = 'disabled';
}else{
$rsvpd = 'NO';
$disabled = '';
}
echo "<li>
<div class='tbl-row'>
<div class='tbl-col'><p>".$row['first_name']." </p></div>
<div class='tbl-col'><p>".$row['last_name']." </p></div>
<div class= 'tbl-col'><span id='rsvpd-".$row['inv_id']."'><p>".$rsvpd." </p></span></div>
<div class='tbl-col'>
<button value='".$row['inv_id']."' $disabled >RSVP</button>
</div>
</div>
</li>";
}
echo "</ul>";
}
else
{
echo "You have NO invitations!";
}
?>
任何帮助/建议,我们都感激不尽!
尝试event delegation
在这种情况下使用
$(document).on('click','button',function(){
//your code here.
});
请阅读此处以了解更多信息event delegation.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句