在ajax调用脚本之后的Jquery不再工作了

时间:2011-11-24 09:40:32

标签: jquery ajax

我正在开发一个管理访问某些酒吧的php页面.... 现在我陷入了一个地狱的问题。

让我解释....

我有一个调用ajaxrequest的按钮并重新加载一个名为#entry的特定div 当我尝试在ajax请求之后访问#entry的ther属性时出现问题。

HTML结构

<div id="all">
    <div id="prenotazioni" class="mobile-left">
        <? CController::renderpartial('_lista'); ?>
    </div>
    <div id="entry" class="mobile-right" style="width:280px;position:absolute;bottom:0px;right:0px;">
        <? CController::renderpartial('_pren'); ?>
    </div>
</div>

和有问题的jquery代码是以下

       $(window).scroll(function() {
                $("#all").parent("div").find("#entry").css("bottom","");
                $("#all").parent("div").find("#entry").css("top", $(window).height() - $("#entry").outerHeight() + $(window).scrollTop() + "px");        
         });

所以,直到我打电话给ajax everithing工作没有什么......没什么......有人可以帮助我?????

由于

EDITED

jQuery('body').undelegate('#yt0','click').delegate('#yt0','click',function(){jQu‌​ery.ajax({'type':'GET','data':{'id_lista':-1},'url':'/mobile/showlista','cache':false,'success':function(html){jQuery("#all"‌​).html(html)}});return false;});

_PREN

<div id="tipo"></div>
<input name="report[id_pren]" id="report_id_pren" type="hidden" value=""/>
<div id="ingresso">
<table>
    <tr>
        <td>

        </td>
        <td>

        </td>

    </tr>
    <tr>
        <td style="margin-right: 10px;">
            <div class="male" >
                <span id="male_nr" class="nr">0</span>
            </div>
        </td>
        <td>
            <div class="female">
                <span id="female_nr" class="nr">0</span>
            </div>
            <div class="clear"></div>
        </td>

    </tr>
    <tr>
        <td style="line-height: 53px;">INGRESSI
            <div id="totale_div" style="float:right;">
                <span id="totale">0</span>
            </div>

            </td>
        </td>
        <td rowspan="2" style="text-align:right;"><input type="image" src="../images/mobile/invio.gif" /></td>
    </tr>
    <tr>
        <td style="line-height: 53px;">
           OMAGGI
            <div id="omaggi_div" style="float:right;">
               <span id="omaggi"> 0</span>
            </div>

        </td>

    </tr>
    <tr>
        <td style="width:50px;">
            <input type="button" id="omgplus" class="omgplus" />
            <input type="button"id="omgminus"  class="omgminus" />
        </td>
    </tr>

</table>  
</div>

1 个答案:

答案 0 :(得分:0)

您正在使用Ajax调用返回的结果替换#all元素的内容。因此,#prenotazioni#entry都会从DOM中删除。

也许您需要将ajax结果放在#prenotazioni元素中。如果是这样,请使用

jQuery("#prenotazioni"‌​).html(html)}

一般说明

$("#all").parent("div").find("#entry").css(..)

应该是

$("#all").find("#entry").css(..)

因为#all#entry的容器,所以您不需要进一步提升DOM层次结构..