2012-03-27 42 views
0

我正在使用下面的代碼,但我不想在頁面中存在#my_id元素,我只是想運行.load(),像這樣$ .load(),等等。我希望我的代碼解釋了什麼是我想要做的......jQuery .load(),我不想將響應綁定到選擇器

 $("#my_id").load('/code.php', {'code': code}, function(response, status, xhr){ 
     if(response == "test"){ 
      $(this).after(' <img src="/accepted.png" alt="accepted" title="accepted"/>'); 
     }else{ 
      $(this).after(' <img src="/not_accepted.png" alt="not accepted" title="not accepted"/>'); 
      //alert("You typed the following: " + voucher_code); 
     } 

任何想法? 謝謝。

回答

0

是這樣的東西你在找什麼?

$.post('/code.php', { code: code }, function(response, status, xhr) { 
    ... 
}); 
+0

嗨,大衛。是的。但它似乎沒有工作...沒有ajax請求發送,並沒有收到迴應... :( – 2012-03-27 12:34:48

+0

我認爲$ .get可能是我後。 – 2012-03-27 12:41:40

+0

@ i-CONICA:通常它應該工作。[Example](http://jsfiddle.net/jUVj7/)如果有其他的錯誤,我們需要更多的信息來幫助你。瀏覽器檢測工具應該能夠讓你監控外發請求,看看會發生什麼'$ .get'和'$ .post'是一樣的,但是有不同的HTTP動詞。 – 2012-03-27 12:45:45

0

您的元素必須添加到DOM以分派加載事件。您還使用.after()添加了一些html代碼,如果在DOM中添加了$(this),則該代碼可以正常工作。

我建議你將你的元素添加到DOM,將它的位置設置在可見區域之外的某處,然後運行代碼。它應該工作。

0

這是從負載()手冊:

範例:運行一種功能,當頁面完全加載包括圖形

$(window).load(function() { 
    // run code 
}); 

UPDATE

這裏被完全工作碼(這只是一個例子,適當的驗證應該被視爲服務器和客戶端):

<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> 
</head> 
<body> 
<script> 
$(document).load('code.php', {'code': "bla"}, function(response, status, xhr){ 
     if(response == "test"){ 
      $('#d').after(' <span>'+response+'</span>'); 
     }else{ 
      $('#d').after(' <span>no</span>'); 
      //alert("You typed the following: " + voucher_code); 
     } 
}); 
</script> 

<div id="d"> </div> 
</body> 
</html> 

code.php:

$e = $_REQUEST['code']; 

if($e) { 
echo 'test'; 
} 

輸出:

<body> 
<script> 
... 
</script> 

<div id="d"> </div> <span>test</span> 

</body> 
+0

使用$(document).load()也是可以接受的。 – Elen 2012-03-27 13:41:50