用php发送一个新帖子,但JavaScript不起作用

时间:2014-04-10 11:56:57

标签: javascript php

我很抱歉英语不好。我准备像facebook一样的墙。一切都正常。 但我在删除按钮时遇到问题。旧船删除按钮工作正常。但是,当我创建一个新帖子时。 删除按钮不起作用。但是当我刷新页面时它会起作用。我使用的是JavaScript代码。 你可以找到我的代码。为了更好地理解我,我制作了一个jpg文件:JPG File          PHP和Javascript:

<?php
foreach($updatesarray as $data)
 {
 $msg_id=$data['msg_id'];
 $orimessage=$data['message'];
 $message=tolink(htmlentities($data['message']));
  $time=$data['created'];
   $username=$data['username'];
 $uid=$data['uid_fk'];
 $face=$Wall->Gravatar($uid);
 $commentsarray=$Wall->Comments($msg_id);
?>
<script type="text/javascript">
$(document).ready(function()
{
    $("._link").click(function(event)
    {
        var $gonderibody = $(event.target).closest(".gonderibody");
        if($(".bubset", $gonderibody).css('display')=='none')
        {
            $(".u_p_a", $gonderibody).addClass('open');
            $(".bubset", $gonderibody).css('display','block');


        }
        else
        {
             $(".bubset", $gonderibody).css('display','none');
             $(".u_p_a", $gonderibody).removeClass('open');

        }

    });
    $(document).click(function(e)
    {
      if($(e.target).attr('class')!='_link')
      {

        if($(".bubset").css('display')=='block')
        {
            if($('.u_p_a').hasClass('open'))
              {
                  $('.u_p_a').removeClass('open');
              }
              $(".bubset").css('display','none');
        }
      }
});

});
</script>
<script type="text/javascript"> 
$(document).ready(function(){$("#stexpand<?php echo $msg_id;?>").oembed("<?php echo  $orimessage; ?>",{maxWidth: 400, maxHeight: 300});});
</script>

<div class="gonderibody" id="gonderibody<?php echo $msg_id;?>">

<div class="u_p_a">
  <a class="_link"></a>
    <div class="bubset">
            <ul class="root">
                <li><a class="stdelete" href="#" id="<?php echo $msg_id;?>" title="Delete update">Sil</a></li>
            </ul>
        </div>
</div>
  <div class="gonderen_resim_zaman_isim">
    <div class="gonderen_resmi">
      <img src="<?php echo $face;?>" class='big_face'/>
    </div>
    <div class="gonderen_adi"><?php echo $username;?>Mustafa öztürk</div>
    <div class="gonderim_zamani"><?php time_stamp($time);?>birkaç dakika önce</div>
  </div>
  <div class="gonderi"><?php echo $message;?></div>
  <div class="begen_yorum_paylas">
    <div class="u_byp"><a href="#">Beğen</a></div>
    <div class="u_byp"><a href='#' class='commentopen' id='<?php echo $msg_id;?>' title='Comment'>Yorum yap </a></div>
    <div class="u_byp"><a href="#">Paylaş</a></div>
  </div>

<div id="stexpandbox">
<div id="stexpand<?php echo $msg_id;?>"></div>
</div>

<div class="commentcontainer" id="commentload<?php echo $msg_id;?>">


<?php include('load_comments.php') ?>





</div>
<div class="commentupdate" style='display:none' id='commentbox<?php echo $msg_id;?>'>
<div class="stcommentimg_mini">
<img src="<?php echo $cface;?>" class='small_face'/>
</div> 
<div class="stcommenttext" >
<form method="post" action="">

<textarea name="comment" class="comment"  id="ctextarea<?php echo $msg_id;?>"></textarea>
<br />
<input type="submit"  value=" Comment "  id="<?php echo $msg_id;?>" class="comment_button"/>
</form>


</div>
</div>


</div> 




<?php

  }
?>

1 个答案:

答案 0 :(得分:0)

您的代码存在多个问题。

  1. html DOM中的id属性需要是UNIQUE。不要给你的id = msg_id和你的删除链接id = msg_id

  2. 事件处理程序仅附加到页面上已有的DOM对象。如果你添加一个元素,它将没有附加事件处理程序。要将事件处理程序也添加到未来的DOM元素,您需要使用委托事件处理程序。使用简单的jQuery。

  3. 错误:

        $('#yourEl').click( function (){
            //...code
        });
    

    右:

        $(document).on('click', '#yourEl', function(){
            //...code
        )};
    

    如果要查找文档中的所有新元素,请使用文档。更好地使用较小的范围。也许.u_p_a?