0

我有跨度内的按钮

<span class="act-button"><input type="button" value="Deactivate" onclick="deactivateTemplate(' + options.rowId + ')"></span>

span.act-button之后我需要更改文本onclick
我尝试使用此代码

function deactivateTemplate(id) {
        $.post('@Url.Action("DeactivateFormTemplate")', { id: id })
        .done(function (result) {
            showMessage(result.Message);
            $('span.act-button').empty().html('<input type="button" value="Activate" onclick="activateTemplate(' + options.rowId + ')">');
        });

但点击我的按钮后,我的按钮就消失了,我没有得到新的按钮span.act-button
我的代码有什么问题?

4

1 回答 1

1
  1. 没有必要重新创建您的按钮。只是改变它的价值

    function deactivateTemplate(id) {
            $.post('@Url.Action("DeactivateFormTemplate")', { id: id })
            .done(function (result) {
                showMessage(result.Message);
                $('span.act-button>input').val('Activate');
            });
    }
    
  2. jquery 中的 DOM 操作方法是异步的:它们不会立即完成。所以empty()有可能在html()之后完成执行。尽量不要像那样使用两者。

于 2013-10-08T11:29:59.177 回答