2

我有一个表,它的行是动态创建的。
我想在生成 tr 或 td 时提示消息 [alert]。

起初它会像

<table class="tab"></table>

之后,行将被动态添加。

<table class="tab">
 <tr class="row">
  <td> Message1</td>
  <td> Message2</td>
 <tr>
</table>

Table 和 TR 的类名将始终相同,但 TD 中的消息会改变。
添加 TD 时,我想在 ALERT 中显示消息。

编辑
它接缝我的问题不清楚。我正在尝试通过以下链接实现这个 JSF 的东西
点击这里

它是文件上传的事情,当你上传错误的文件时,它会在表格行中抛出一条错误消息,我想在它发生时提醒一条消息。

在此处输入图像描述

回答
你好每个人都感谢你们所有的回答。我得到了答案。

$(document).bind('DOMNodeInserted', function(e) {
    var element = e.target;
    if($(element).is("tr.tab")) {
    alert("New ROW ADDED");
    }           
});
4

5 回答 5

1

扩展上传脚本以通过事件回调自己报告这一点 - 对我来说最好的方式。

于 2013-05-24T14:47:38.517 回答
1

您可以使用setinterval并以这样的方式编写函数,即如果 table 的 html 发生更改。然后找到附加的 td 并提醒用户消息。

var previous_tr_html='';
setInterval(function() { $checkError(); }, 1000);

function checkError(){
  var current_tr_html=$('.row').html();
  if(previous_tr_html!=current_tr_html){
//new td added
  newerrortds=$('.row').find('td:not(.displayed)');
  $(newerrortds).each(function(){
  alert($(this).html();)
//add already displayed error class to current td
  $(this).addClass('displayed');
});
//change previous html value to current
 previous_tr_html=current_tr_html;
}

}
于 2013-05-24T11:52:52.750 回答
1

看看 DOM 事件

https://en.wikipedia.org/wiki/DOM_events

“DOMNodeInserted - 当一个节点被添加为另一个节点的子节点时触发”


如果做不到这一点,您可以使用超时轮询 DOM,并为您已经处理的所有内容添加一个类

setatimeout...
function timeouthandler (
  var newitems = $.(".tab td").not('.processed');
  if newitems {
     alert('new stuff!');
     newitems.addClass('processed')
  }
  setanothertimeout...
)

这不在我的脑海中,需要一些工作。随意用实际有效的东西编辑这个答案;-)

于 2013-05-24T11:46:21.757 回答
1

我建议您基于此讨论的解决方案:如何在 jQuery 中检测新元素创建?

$(document).ready(function(){
    $(document).bind('DOMSubtreeModified',function(){
        $('.template-upload.ui-state-error').each(function( index ){
            alert( "The file '"+$(this).find('.name').html()+" is not valid" );
            $(this).find('.ui-icon-cancel').click();
        });
    })
});

不幸的是,我不是 jquery 专家,所以请检查我的代码并进行实验。如果您需要更多帮助,请告诉我。

于 2013-05-24T12:05:31.007 回答
1

我认为可以通过使用 jqueries .on() 事件来简化解决方案

使用它允许您在一个语句中指定事件和选择器:

$(document).on( "DOMNodeInserted", "tr.row", function() {
  alert( "New ROW ADDED" );
});

这是一个有效的 JSFiddle

于 2014-02-21T13:29:03.690 回答