更新组件后,Javascript无法工作
Javascript doesnt work after updating component
上下文
在对话框中,用户可以按下按钮来填充名为qPdt的现有数据表。当他点击一行时,我希望将行文本插入到某个inputTextArea中。
问题
结果是,如果我打开对话框并单击任何一行,一切都会正常工作,正如预期的那样。但是,如果我打开对话框并按下按钮,我的脚本将不再工作/不再被调用。我必须关闭对话框并重新打开它才能使脚本工作。
可能我在这里缺少一些javascript/jsf基础知识。任何提示都很好:(
代码
<script>
$('#accordion'':duoDlgForm2'':qPdt tr').on('click', function() {
var $item = $(this).closest("tr").find("td:nth-child(1)").text().trim();
$("#accordion'':duoDlgForm2'':rt1Selected").append($item);
});
</script>
也尝试过(位于表单内部和外部(
<script>
$(document).ready(function() {
$('#accordion'':duoDlgForm2'':qPdt').on('click','tr',function() {
var $item = $(this).closest("tr").find("td:nth-child(1)").text().trim();
$("#accordion'':duoDlgForm2'':rt1Selected").append($item);
});
});
</script>
数据表:
<p:scrollPanel mode="native">
<p:dataTable id="qPdt" var="p" value="#{regelBean.queriedParams}" scrollable="false"
emptyMessage="x" rowKey="#{p}" selection="" selectionMode="single">
<p:column>#{p.name}
<f:facet name="header" style="">Parameter</f:facet>
</p:column>
</p:dataTable>
</p:scrollPanel>
按钮打开对话框
<p:commandButton id="selectButton" value="?" update=":stmtDetailForm :newDuoDlg" oncomplete="PF('newDuoDialog').show()" actionListener="#{regelBean.selectButtonHit(tVar)}">
按钮来填充数据表
<p:commandButton value="<" update="qPdt regelDetail sp2" action="#{regelBean.findParams()}"/>
PF 4.0,IE9,与合作包括。
可能您在某个时候更新了对话框、手风琴或表单,这会导致事件崩溃。。。尝试将事件绑定到更大的东西上,比如document
。
JS
function bindDataTableSelection() {
$(document).on('click', '.ui-datatable-selectable', function() {
itemText = $('.ui-datatable-selectable.ui-state-highlight')
.find("td:nth-child(1)").text().trim();
$("#accordion'':duoDlgForm2'':rt1Selected").append(itemText);
});
}
现在调用document.ready
中的函数
阅读更多:
- Primefaces的部分更新是否破坏了JQuery事件绑定
希望这能帮助
多亏了Hatem Alimam,我才解决了这个问题:-*
我将脚本绑定到了scrollPanel,而不是数据表本身。这项工作:
$(document).ready(function() {
$('#accordion'':duoDlgForm2'':scrollPanelID').on('click','tr',function() {
var $item = $(this).closest("tr").find("td:nth-child(1)").text().trim();
$("#accordion'':duoDlgForm2'':rt1Selected").append($item);
});
});
相关文章:
- 用户名输入如果其他块不能正常工作/Javascript-jQuery-AJAX
- 变量只能在函数中局部工作,不能全局工作-Javascript
- onClick按钮不工作javascript/php/jquery mobile
- 点击骰子赢得't工作(javascript)
- for循环,if else不工作Javascript
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- 可以'没有一个函数可以工作——Javascript
- OnFocus 不是工作 JavaScript HTML;不显示对焦时计算和按钮单击时
- 从 iframe 访问主站点中的工作 JavaScript
- 对于在循环中无法按预期工作 JavaScript
- 在阅读表单输入后写回HTML;t工作(Javascript)
- 复选框单击有效,取消选中复选框不工作Javascript
- 代码在Codepen中工作,而不是在浏览器中工作:JavaScript在鼠标滚轮上缩放SVG
- 当用户在这个工作javascript注释框中提交注释时,您将如何添加用户图像和名称
- 向Wordpress添加工作Javascript谷歌地图代码
- 确认/重定向功能不工作-javascript
- 当/patt/版本工作时,为什么RegExp版本不工作?(Javascript)
- Firefox加载项按钮代码不工作-Javascript
- 计算器功能不工作- Javascript
- 将工作JavaScript对象序列化为仅保留属性的JSON