使用.load()获取数据时jQuery的问题

时间:2012-03-22 15:28:39

标签: php javascript jquery

我有一个表,当单击一行时,它会将该行的前6个字符(一个ID)发送到PHP页面,并将后续数据加载到页面下方的div中。似乎问题是,一旦我单击一行来加载div,大多数jQuery事件就会停止工作(.hover,.sortElements),这些事件将附加到原始表中。是否有人会知道“修复”或解决此问题,或者是否有一些我不知道的事情。

<SCRIPT type='text/javascript'>
$(document).ready(function(){

$(".panel").hide();
$(".itemjobbutton").click(function(){
    $(".panel").slideToggle("200");
    return false;
});
var inverse = false;
$("#jobTable th").click(function(){
            var header = $(this),
                index = header.index();

            header
                .closest('table')
                .find('td')
                .filter(function(){
                    return $(this).index() === index;
                })
                .sortElements(function(a, b){

                    a = $(a).text();
                    b = $(b).text();

                    return (
                        isNaN(a) || isNaN(b) ?
                            a > b : +a > +b
                        ) ?
                            inverse ? -1 : 1 :
                            inverse ? 1 : -1;

                }, function(){
                    return this.parentNode;
                });

            inverse = !inverse;

        });

$('#jobTable tr').click(function(){
if($(this).index() != 0) {
    var thistext = $(this).text().substring(0,6);
    $("#joblistingDetail").load('jobview.php' , {jobID: thistext}).hide().slideDown('100');
    $("#jobTable tr").css("background", "#fff");
    $(this).closest('tr').css('background-color', '#C3D9FF');
}
});


});

$('#jobTable tr').hover(

function() {
    $(this).addClass('hover');
},
function() {
    $(this).removeClass('hover')
}
);

1 个答案:

答案 0 :(得分:1)

您的jobview.php很可能包括它自己的jquery.js版本覆盖父页面上的版本。要么将其从jobview.php中移除,要么修改您的.load以仅从给定选择器中拉入html,例如

$("#joblistingDetail").load('jobview.php #target')

其中#target是选择要拉入的特定容器的选择器。