用于PrimeFaces数据表的JavaScript在数据表被AJAX更新后无法工作

用于PrimeFaces数据表的JavaScript在数据表被AJAX更新后无法工作,javascript,jquery,jsf,primefaces,jsf-2.2,Javascript,Jquery,Jsf,Primefaces,Jsf 2.2,以下JavaScript函数从id为discountStartDate的标题隐藏排序箭头(向上或向下) function removeSortableIconCSS() { $('#form\\:dataTable\\:discountStartDate .ui-sortable-column-icon').css({"display":"none"}); } $(document).ready(removeSortableIconCSS); 它将列标题从 以下是我的看法 将删除

以下JavaScript函数从id为
discountStartDate的
标题隐藏排序箭头(向上或向下)

function removeSortableIconCSS()
{
    $('#form\\:dataTable\\:discountStartDate .ui-sortable-column-icon').css({"display":"none"});
}

$(document).ready(removeSortableIconCSS);
它将列标题从

以下是我的看法

将删除排序箭头


使用以下
更新


...
...
...
但是,即使在
oncomplete
事件中调用了JavaScript函数
removeSortableIconCSS()
,并且排序图标显示在第一个图像中(只要AJAX请求完成并且
更新)


这不是实际的要求。这只是在其他地方发生的问题的一个演示,需要解决。

我知道这不是一个实际的要求,但是这个特殊情况可以通过重写CSS文件中的样式来更容易地解决。特别是在这种情况下,实际上,我需要重写最后一个元素中的指定类(这是
)中的
(对应于
标题。我只是尝试实现一个自定义过滤器,允许用户使用
)。此问题已由answer解决,但某些模糊浏览器不支持CSS。当Internet explorer不支持此问题时,需要考虑此问题。是否抛出错误并显示在控制台中,或者函数是否在不隐藏错误的情况下完成arrow@SamNunnally:在谷歌Chrome上看到。它是不显示任何错误。(非主题:但是,它会显示一条警告,“
event.returnValue
已被弃用。请改用标准的
event.preventDefault()
”,但这会在来自PrimeFaces自身某个地方的应用程序中发生)。为什么不直接删除datatable中列的
属性?
<p:remoteCommand name="updateTable" update="dataTable"/>

<p:commandButton id="btnSubmit" actionListener="#{bean.insert}" value="Save"
oncomplete="if(!args.validationFailed) {updateTable();} removeSortableIconCSS();"/>

<p:dataTable id="dataTable" var="row" value="#{discountManagedBean}"...>
    ...

    <p:column id="discountStartDate" sortBy="#{row.discountStartDate}" width="200">

    ...

    </p:column>

    ...

</p:dataTable>