jQuery .load(),我不想将响应绑定到选择器

时间:2012-03-27 11:29:50

标签: jquery ajax

我正在使用下面的代码,但我不想让页面中存在#my_id元素,我只想运行.load(),就像这个$ .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);
        }

有什么想法吗? 感谢。

3 个答案:

答案 0 :(得分:0)

这就是你想要的东西吗?

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

答案 1 :(得分:0)

必须将您的元素添加到DOM才能调度load事件。您还使用.after()添加了一些html代码,如果在DOM中添加$(this),则可以使用。

我建议你将你的元素添加到DOM,在可见区域之外的某个位置设置它,然后运行代码。它应该工作。

答案 2 :(得分:0)

这是来自load()手册:

示例:在页面完全加载时运行一个函数,包括图形

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

更新

这里是完全正常工作的代码(这只是一个例子,适当的验证应该被视为服务器和客户端):

<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>