将自身价值传递给功能

时间:2012-06-29 13:28:01

标签: javascript jquery

我有以下内容你可以看到我试图通过this通过函数这是可能的JavaScript \ jQuery如果是这样如何?似乎无法找到任何我认为我的术语错误。

function pageLoad(sender, args) {
    if (args.get_isPartialLoad()) {
        jQuery(".ShowPleaseWait").click(function () {
            processingReplacer("Please Wait...", this);
        });
        jQuery(".ShowProcessing").click(function () {
            processingReplacer("Processing...", this);
        });
    }
}

function processingReplacer(message, this) { 
        if (Page_IsValid) {
            jQuery(this).hide();
            jQuery(this).after("<img id='" + jQuery(this).attr('id') + "' class='" + jQuery(this).attr('class') + "' src='/content/images/processing.gif' /> " + message);
            alert("woohoo"); 
        }
}

2 个答案:

答案 0 :(得分:5)

您不能使用this作为函数参数的名称。将其更改为其他内容:

function processingReplacer(message, target) { 
    if (Page_IsValid) {
        jQuery(target).hide();
        jQuery(target).after("<img id='" + jQuery(target).attr('id') + "' class='" +
           jQuery(target).attr('class') + "' src='/content/images/processing.gif' /> " +
           message);
        alert("woohoo"); 
    }
}

答案 1 :(得分:2)

你可以这样做:

processingReplacer.call(this, "Please Wait...");

...

function processingReplacer(message) { 
        if (Page_IsValid) {
            jQuery(this).hide();
            jQuery(this).after("<img id='" + jQuery(this).attr('id') + "' class='" + jQuery(this).attr('class') + "' src='/content/images/processing.gif' /> " + message);
            alert("woohoo"); 
        }
}

使用call,您可以设置this的上下文。但Jon的答案可能更具可读性。