我有一个表,它的行是动态创建的 我想在生成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的东西
CLICK HERE
它是一个文件上传的东西,当你上传错误的文件然后它会在表行中抛出一条错误消息,我想在消息发生时提醒它。
ANSWER
大家好,感谢大家的回答。我得到了答案。
$(document).bind('DOMNodeInserted', function(e) {
var element = e.target;
if($(element).is("tr.tab")) {
alert("New ROW ADDED");
}
});
答案 0 :(得分:1)
看一下DOM Events
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...
)
这是我的头脑,需要一些工作。随意用实际有用的东西编辑这个答案; - )
答案 1 :(得分:1)
您可以使用 setinterval 并以这样的方式编写函数:如果更改了表的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;
}
}
答案 2 :(得分:1)
我建议您根据此讨论找到解决方案:How to detect new element creation in 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专家,所以检查我的代码并进行实验。如果您需要更多帮助,请告诉我。
答案 3 :(得分:1)
扩展上传器脚本以通过事件回调自行报告 - 这是我的最佳方式。
答案 4 :(得分:1)
我认为使用jqueries .on() event
可以简化解决方案使用此选项可以在一个语句中指定事件和选择器:
$(document).on( "DOMNodeInserted", "tr.row", function() {
alert( "New ROW ADDED" );
});