2014-02-12 35 views
0

我正在使用jQuery來觸發幾個嵌套的腳本。我期望jQuery腳本能夠應用到被調用的腳本,但是我得到了意想不到的行爲 - 沒有更新。以下是清晰度代碼:AJAX!更新更高級的DIV?

 <div id="crnNav" class="centered"> 
      <?foreach ($CRNs as $crn) { 
       echo '[<a href="pullCRN.php?crn='.$crn.'">'.$crn.']</a> '; 

      } unset($crn);?> 
     </div> 

     <div id="result"> 
      <!-- class data porn goes here --> 
     </div> 

<!-- controller logic --> 
<script> // function updates content 
    $('a').click(function(){ 
     event.preventDefault(); 
     var href = $(this).attr('href'); 

     $.get(href, function(data) { 
      $("#result").load(href); 
     }); 
    }); 
</script> 

這可按預期工作。 DIV #result填充了pullCRN.php的內容,事實上,因爲我有我的選擇器作爲所有錨點,它適用於我不想要的東西。但是爲了測試的目的,我將它放在那裏,因爲通過pullCRN.php加載的代碼會生成更多鏈接。什麼不會發生#result不會更新與加載在pullCRN.php中的鏈接的內容,只有該DIV之外的鏈接。這是預期的行爲?

回答

0

的解決我的問題是重寫的語法如下處理程序:

$(document).on(events, selector, data, handler); 

這將我的處理程序綁定到動態添加到頁面的新元素。

0

你已經忘了將事件作爲參數

$('a').click(function(){//here and without parameter this wouldn't work 

所以,使用此:

$('a').click(function(event){ 
     event.preventDefault(); 
     var href = $(this).attr('href'); 

     $.get(href, function(data) { 
      $("#result").load(href); 
     }); 
    }); 
+0

感謝您的回覆@ C-link,但是,這種代碼更改沒有明顯的效果。除了在#result DIV內部生成的代碼外,該函數在沒有參數的情況下工作。此外,我是jQuery語法的新手,所以我沒有遵循你可能一直試圖用你的答案領導的地方。 – jschavey

+0

編輯:我在被調用的元素中發現了一個衝突的腳本。快速修復看起來確實存在行爲上的變化。 – jschavey

+0

然後使用jQuery.noConflict();太。 –