在不同的函数上访问JQuery / AJAX的返回值

时间:2014-02-18 15:01:42

标签: javascript jquery ajax function

我想在另一个函数上访问我函数的返回布尔值。

$('.asset_edit').change(function(){
        var asset_id=$(this).attr('id');
        var asset=$("#"+asset_id).val();

        var dataString = "device="+device+"&asset="+asset;

        $.ajax({
            type: "POST",
            url: "<?php echo site_url('c_device/check_assetCode'); ?>",
            data: dataString,
            cache: false,
            success: function(html){
                if(html)
                    return true;
                else
                    return false;
            }
        });
    });

有没有办法可以访问我的“return true或return false” $(“。edit_tr”)。点击(function()功能?

在Javascript中你只需要调用某个函数名,但在jQuery中,我不知道如何。

2 个答案:

答案 0 :(得分:1)

您可以使用全局变量;

var global_status;
$('.asset_edit').change(function(){
        var asset_id=$(this).attr('id');
        var asset=$("#"+asset_id).val();

        var dataString = "device="+device+"&asset="+asset;

        $.ajax({
            type: "POST",
            url: "<?php echo site_url('c_device/check_assetCode'); ?>",
            data: dataString,
            cache: false,
            success: function(html){
                if(html) {
                   global_status="true";
                   return true;
                }
                else {
                    global_status="false";
                    return false;
                }
            }
        });
    });

$(".edit_tr").click(function() {
   alert(global_status);
})

以下是一个有效的演示: http://jsfiddle.net/vWkjr/1/

测试时,首先单击编辑并查看未定义,然后从选择框中选择值并单击编辑。

答案 1 :(得分:1)

在使用返回值的情况下,你可以添加一个指定html的类,而不是它自己的元素。或者你可以声明一个全局变量并为其赋值。

$('.asset_edit').change(function(){
    var asset_id=$(this).attr('id');
    var asset=$("#"+asset_id).val();

    var dataString = "device="+device+"&asset="+asset;

    $.ajax({
        type: "POST",
        url: "<?php echo site_url('c_device/check_assetCode'); ?>",
        data: dataString,
        cache: false,
        success: function(html){
            if(html)
                $(this).addClass('ishtml');
            else
                $(this).addClass('nothtml');
        }
    });
});

可以使用其他功能访问此类。像

function somefunction(){
    if($('.asset_edit .ishtml ').length){
          //true then do something
      }else{
          //false then do something
      }
}