0

我添加了两个按钮,一个在 html 上,一个在 php 上 .... 通过使用 ajax 获得第二个按钮..

但是当我向按钮添加事件时,html页面上的那个只能工作......需要一些帮助......

HTML

<input type="button" value="button 1" class="btn">
 <div id="div"><div>
<script>
$.ajax({
  url:"btn2.php", success:function(data){
  $('#div').html(data);}
});

$('.btn').click(function(){
    alert("button is wrking");
});

</script>

PHP

<?php

echo"<input type='button' value='button 2' class='btn'>";
?>

谁可以帮我这个事

4

3 回答 3

0

在 ajax 响应中绑定您的点击事件或.on()按照@ComFreek 的建议使用

$.ajax({
  url:"btn2.php", 
success:function(data){
  $('#div').html(data);
$('.btn').click(function(){
    alert("button1 is wrking");
}); 
}
});
于 2013-09-27T18:59:59.543 回答
0

您的 PHP 代码导致语法错误。将其输出为字符串:

<?php
  echo '<input type="button" value="button 2" class="btn">';
?>

甚至不需要 PHP:

<input type="button" value="button 2" class="btn">

另一个问题是您的 jQuery 代码不起作用,因为它选择了在函数调用时存在的元素,但是之后您的按钮将被加载(异步)!

$( "#div" ).on( "click", ".btn", function() {
  alert("button1 is working");
});
于 2013-09-27T18:51:01.603 回答
0

请不要将 html 代码包含在<?PHP ?>标签中

如果你简单地说

<input type="button" value="button 2" class="btn">

在您的 ajax 目标页面(btn2.php)中它会起作用。

更新

要使已定义click handler的适用于 ajax 加载的内容的工作,还请使用

$('.btn').live('click', function({ alert(1); }));
于 2013-09-27T18:51:33.373 回答