单击URL时如何执行两个函数

时间:2009-10-06 02:43:47

标签: jquery ajax onclick

点击我的“导出”网址后,我发生了以下两个事件。无论我如何尝试,我都无法在没有收到“嘿,你在某个地方错过逗号或分号”的情况下将两者结合起来 - 恐怖。任何人都可以提出一种方法来将两者结合起来,或者我应该将它们分开,就像它们现在一样?

$('#export').click(function() {
        $.each(gSelectedMeds, 
            function(intIndex, objValue) {
                i=intIndex + 1;
                if(i>1) {string+='&';}
                string+='med'+i+'="'+objValue+'"';
            }
        )
            string += "&count="+i;
    }); 
    $('#export').click(function(){
        $.ajax({
            url: 'ajax-exportMeds.php?'+string,
            type: "GET",
            dataType: "text",
            success: 
                function(data){
                    $('#dialog_layer').dialog({
                        autoOpen: true,                         
                        bgiframe: true,
                        modal: true,
                        buttons: {
                             "OK": 
                                function() {
                                    $(this).dialog("close");
                                }
                        }
                    })
                }
        })
    });

2 个答案:

答案 0 :(得分:1)

我不知道是否会这样做,但是合并到一个函数中会消除可能导致问题的全局“字符串”。

$('#export').click(function() {
  $.each(gSelectedMeds, 
     function(intIndex, objValue) {
        i=intIndex + 1;
        if(i>1) {string+='&';}
        string+='med'+i+'="'+objValue+'"';
     }
   )

   string += "&count="+i;

    $.ajax({
            url: 'ajax-exportMeds.php?'+string,
            type: "GET",
            dataType: "text",
            success: function(data){
              $('#dialog_layer').dialog({
                autoOpen: true,                                                 
                bgiframe: true,
                modal: true,
                buttons: {
                  "OK": function() { $(this).dialog("close"); }
                   }      
                })
             }
    })
});

答案 1 :(得分:0)

你试过这个吗?

function doEach() {
        $.each(gSelectedMeds, 
                function(intIndex, objValue) {
                        i=intIndex + 1;
                        if(i>1) {string+='&';}
                        string+='med'+i+'="'+objValue+'"';
                }
        )
                string += "&count="+i;
}

function doAjax(){
        $.ajax({
                url: 'ajax-exportMeds.php?'+string,
                type: "GET",
                dataType: "text",
                success: 
                        function(data){
                                $('#dialog_layer').dialog({
                                        autoOpen: true,                                                 
                                        bgiframe: true,
                                        modal: true,
                                        buttons: {
                                                 "OK": 
                                                        function() {
                                                                $(this).dialog("close");
                                                        }
                                        }
                                })
                        }
        })
    }

$('#export').click(function() {
  doEach();
  doAjax();
}); 

你也应该提出有意义的名字。当然,您可以更轻松地重构此代码。