jquery hide div在成功回拨时没有工作

时间:2011-09-04 20:56:40

标签: jquery html hide

我希望有人可以指出为什么我的div(在我的情况下,我使用li)在成功执行我的php脚本时没有使用jquery隐藏。

这是我的查询代码(来自jquery即兴插件):

if(v){
    var bid = f.bannerid;
    $.post('/manage/<?=CFILE?>',{bannerid:f.bannerid,action:'deleteBanner',cid:<?=$contentid?>,uid:'<?=$_SESSION['userid']?>'},{callback:function(data){
        if(data=='true'){
            $('#list_'+bid).hide('slow', function(){ $(this).remove(); });                                  
        }else{ 
            $.prompt('An Error Occured while removing this banner'); 
        }                           
    }});
} 

这是我的HTML代码的一部分:

<li id="list_47">
<div>
    <div id="row">
        <div class="title id="bannerid59"><img src="banner_45_10.jpg" /></div>
        <div class="action"><a href="javascript:;" title="Delete Banner" class="deleteBanner" onclick="deleteBanner(59);">Delete</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 2</span><br>
    </div>
</div>
</li>
<li id="list_48">
<div>
    <div id="row">
        <div class="title id="bannerid60"><img src="banner_45_11.jpg" /></div>
        <div class="action"><a href="javascript:;" title="Delete Banner" class="deleteBanner" onclick="deleteBanner(60);">Delete</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 3</span><br>
    </div>
</div>
</li>

最后,这是我简单的PHP代码:

if(isset($_POST['action']) && $_POST['action']=="deleteBanner"){
    mysql_query("DELETE FROM banner where banner_image='".$_POST['bid']."' AND users_id='".$_POST['uid']."'") or die(mysql_error());
    print "true";
    exit;
}

我可以使用这些代码从mySQL数据库中删除我的横幅而没有任何问题,但我似乎无法在脚本执行时隐藏已删除的li(例如,list_47)。

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

你没有正确地调用$.post,你的{callback: function() ... }应该只是函数:

$.post(
    '/manage/<?=CFILE?>',
    {bannerid:f.bannerid,action:'deleteBanner',cid:<?=$contentid?>,uid:'<?=$_SESSION['userid']?>'},
    function(data) {
        // ...
    }
);

$.post将在其参数列表中查找函数但不会找到一个函数;由于没有传递回调函数,因此不会调用回调,也不会隐藏<div>

比较这两个:

相关问题