0

動的に生成されたハイパーリンクのリストがあり、jquery を使用してクリック イベントをバインドしています。すべて正常に動作しています。できないことの 1 つは、そのテキストを変更することです。

 **this.value = s;**

これは私が成功せずにやろうとしていたことです。

私の完全なコード:

$(document).ready(function () {
    $('[id*="lnkStatus_"]').bind('click', SaveRequirmentStatus);
});

function SaveRequirmentStatus(event) {
    var itemID = $(event.currentTarget).attr('id');
    var intProjectId = $('[id$="hdnProjectId"]').val();
    var idRequirment = itemID.split('_')[1];
    var idRequirementPhase = itemID.split('_')[2];
    var idPhaseStatus = $(event.currentTarget).val();
    if (intProjectId != '0' && idRequirment != '0' && idRequirementPhase != '0') {
        $.getJSON('handler/RequirementLifecycleHandler.ashx?     FuncName=SaveRequirment&idRequirment=' + idRequirment + "&idRequirementPhase=" + idRequirementPhase + "&idProject=" + intProjectId + "&idPhaseStatus=" + idPhaseStatus, function (ValueStatus) {
            var s = ValueStatus;
            alert(this);
            this.value = s;
        });
    }
}    
4

2 に答える 2

1

this使用しているコンテキストではリンクを参照していないため、参照を内部関数の外に保存して使用します。また、リンクには値がありません。jQueryテキスト関数を使用してテキストを設定できます。

コードをこれに変更すると、必要なことが行われます。

function SaveRequirmentStatus(event) {
    var $this = this; // save reference to the clicked link
    var itemID=$(event.currentTarget).attr('id');
    var intProjectId=$('[id$="hdnProjectId"]').val();
    var idRequirment=itemID.split('_')[1];
    var idRequirementPhase=itemID.split('_')[2];
    var idPhaseStatus = $(event.currentTarget).val();
    if (intProjectId != '0' && idRequirment != '0' && idRequirementPhase != '0') {
        $.getJSON('handler/RequirementLifecycleHandler.ashx?FuncName=SaveRequirment&idRequirment=' + idRequirment + "&idRequirementPhase=" + idRequirementPhase + "&idProject=" + intProjectId + "&idPhaseStatus=" + idPhaseStatus, function(ValueStatus) {
            $this.text(ValueStatus); // set the text of the link to ValueStatus
        });
    }
}
于 2013-07-18T09:49:28.403 に答える
0

これはすべきです

$(function() {
$('[id*="lnkStatus_"]').bind('click', SaveRequirmentStatus); 

});
function SaveRequirmentStatus(event) {
 $(this).text(ValueStatus);
}
于 2013-07-18T10:07:25.877 に答える