2012-03-22 60 views
3

行をクリックすると、その行(ID)の最初の6文字がPHPページに送信され、その後のデータがdivにさらに読み込まれるページを下ろす。問題は、一度、divをロードする行をクリックすると、jQueryイベントの大部分が動作を停止することです(.hover、.sortElements)。これらは元のテーブルにアタッチされています。この問題のために「修正」や回避策を知っている人がいるのでしょうか、それとも私が欠けているものがありますか?.load()を使用してデータを取得するときのjQueryの問題

<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') 
} 
); 

+0

ジョブ・ビューは#jobTable持ち込みを有しますメインページに? – Panagiotis

+0

'#joblistingDetail'は'#jobTable'の祖先ですか?もしそうなら、あなたは '#joblistingDetail'要素に由来するイベント委譲を行う必要があります。 –

+0

@Panagiotisはい正しいです。 – craighandley

答えて

1

あなたjobview.phpはおそらく親ページ上の1をオーバーライドしているjquery.jsのそれ自身のバージョンを含む、より多くのです。いずれかjobview.phpから削除、または変更あなた.loadのみ与えられたセレクタ#targetを引き込むために、特定のコンテナを選択するセレクタであるような

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

内からHTMLで引っ張る。

+0

ありがとうございました。 – craighandley

関連する問題