带回调函数的jQuery load()不会捕获click()

时间:2010-09-30 19:14:36

标签: jquery-load

我没有运气来获取ajax加载表单的jqueryui对话框,该表单通过ajax提交。

一切正常,以便捕获正在提交的表单,而不是通过ajax调用发送它。因此,触发表单操作并重定向浏览器。永远不会进行ajax调用。

我的代码如下

$(document).ready(function() {
$('.viewOrder').click(function() {
    $('#displayOrder').load(this.href, [], function() {
        console.log("landed here");

            $('#blah').click(function() {
                console.log("submiting the form via ajax");

                $.ajax({
                    url: "/ajax/orderupdate",
                    type: "GET",
                    data: data,
                    cache: false,

                    //success
                    success: function (data) {
                        console.log("worked:");
                    }
                });
                return false;
            });
    });
    return false;
});

});

.viewOrder是一个加载ajax的href。这很好用。 我在这里已经阅读了很多类似的问题,似乎load()不执行返回html中嵌入的脚本,但我的返回代码是纯html没有脚本。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

恕我直言,你应该尝试捕捉submit而不是点击,这样你就可以阻止键盘提交,甚至可以解决你的问题。

答案 1 :(得分:0)

事件绑定在页面加载上。在页面加载您绑定的表单时,click事件不存在。我使用livequery插件,但是他们将Live添加到了jquery 4,你也可以使用它(我有一些IE的问题,所以我回到了livequery)

因此,使用脚本http://docs.jquery.com/Plugins/livequery

加载livequery

并更改

$('#orderUpdate')。submit(function(){

$(“#orderUpdate”)。livequery(“submit”,function(){