javascript - Jquery a .Show() 没有完全工作

标签 javascript jquery

我有两个功能。一个隐藏“编辑”和“删除”按钮并显示“保存”按钮,另一个则相反(隐藏“保存”,显示“编辑”和“删除”)。

现在第一个按钮起作用:保存出现,编辑/删除消失,但第二个功能不起作用:它隐藏保存但只显示删除...不知何故编辑没有显示。

<td> 中的按钮代码

<td class="col-lg-3 col-lg-offset-1">
    <span style="visibility:hidden" class="ID">@Html.DisplayFor(modelItem => item.ID)</span>

    <span class="item-edit-button">
          <button type="button" onclick="someFunction(this)" class=" btn btn-warning col-lg-4"><span style="margin-right: 5px" class="glyphicon glyphicon-pencil"></span>Edit</button>
    </span>

    <span class="item-save-button">
          <button type="button" onclick="saveFunction(this)" class="btn btn-success col-lg-4"><span style="margin-right: 5px" class="glyphicon glyphicon-trash"></span>Save</button>
    </span>

    <span class="item-delete-button"> // no use right now - ignore
          <button type="button" onclick="deleteFunction(this)" class="btn btn-danger col-lg-4"><span style="margin-right: 5px" class="glyphicon glyphicon-trash"></span>Delete</button>
    </span>
</td>

JQuery

<script>
    function someFunction(element) 
    {   
        $(element).hide();
        $(element).closest("td").find("span.item-save-button").show();
        $(element).closest("td").find("span.item-delete-button").hide();
    }

    function saveFunction(element) 
    {
        $(element).hide();  
        $(element).closest("td").find("span.item-edit-button").show();
        $(element).closest("td").find("span.item-delete-button").show();

    }
</script>

http://jsfiddle.net/isherwood/BrP2a/

希望我只是犯了一些愚蠢的错误。

回答 我不小心隐藏了 button , 而不是 span ,因此当我试图显示我的编辑按钮的跨度时它不起作用,因为按钮本身最初是隐藏的以解决这个问题我不得不使用。

function someFunction(element) {

        $(element).closest("span").hide();
        $(element).closest("td").find("span.item-save-button").show();
        $(element).closest("td").find("span.item-delete-button").hide();

    }

 function saveFunction(element) {

        $(element).closest("span").hide();
        $(element).closest("td").find("span.item-edit-button").show();
        $(element).closest("td").find("span.item-delete-button").show();  
    }

最佳答案

您已经通过 $(element).hide();someFunction 中隐藏了实际按钮,并且您正在显示 item-edit-button 跨度所以实际按钮仍然隐藏。试试这个,

function saveFunction(element) 
{
    $(element).hide();  
    $(element).closest("td").find("span.item-edit-button button").show();
    $(element).closest("td").find("span.item-delete-button").show();
}

关于javascript - Jquery a .Show() 没有完全工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23957982/

相关文章:

javascript - SVG:<use>、javascript 和动画

php - Gigya 用户对象丢失

javascript - 无法在加载的模态中触发点击事件

javascript - AngularJS 通过下拉列表中的选择过滤文本

javascript - 如何通过输入元素(原始js)实时检查JavaScript对象中是否存在用户

javascript - 可以防止 Enter 仅从某些输入字段在 JavaScript 中提交表单

javascript - D3折线图问题

javascript - 如何正确检查是否所有表单元素都填充了 JavaScript

jQuery UI 选项卡第一个加载的选项卡被缓存,尽管 ajaxOptions : cache: false is specified

javascript - jQuery:toggleClass 不适用于下拉菜单