动态追加文本行
该代码的目标是每次最后一行关注时创建一个新的输入行,直到一定数量的行。 我提供this solution伟大的工程:动态追加文本行
$(function() {
$("#qc>div:last-of-type>input").live('focus', function() {
$(this).parent().after($(this).parent().clone().attr('id', 'ansInput' + $('#qc>div').length).find('input').val('').end());
});
});
,但我也希望前行的文本每一次改变,所以clone
不会削减它
我修改它来写一个预先准备HTML行,但它不工作:
function questionsForm() {
$("#qc>div:last-of-type>input").live('focus', function() {
lineNum = $('#qc>div').length
newLine = ("<div id='ansInput{0}'>Answer {0}: <input type='text' name='ans{0}' /></div><!--ans1-->").format(lineNum);
if ($('#qc>div').length <= 4) {
$(this).parent().after(newLine);
}
});
}
(该.format
方法是预先定义的)
我想知道为什么我的代码不工作,以及如何chamge它,但不能完全不同的解决方案(当然,除非我的代码有一些根本性的错误。)
你lineNum = $('#qc>div').length
为什么在questionsForm()函数中的代码?
你可以只将它放在了jQuery就绪功能$(function(){ ... });
还那么你的数据的功能是什么样子?
(1)thanx表示分号,但没有变化(2)我在代码中已经有一个'$(function(){})',所以我把'questionsForm'放在那里(3)格式在其他部分相同的代码,我试图删除它,但没有任何更改.. – ilyo 2011-06-02 07:36:08
何时/你在哪里调用questionsForm()? – Andy 2011-06-02 08:27:21
当我使用你的代码,克隆,它的工作原理!它只会在我将其更改为使用HTML行时停止工作。这是代码包括'.format'和'$(function':http://jsfiddle.net/ilyaD/x5fqf/ – ilyo 2011-06-02 08:37:34
是newLine你期待它是什么(如果你调试它)?是在输入焦点上执行的函数吗?焦点和生活在一些浏览器中奇怪地进行交互。 – aepheus 2011-06-01 18:13:58
由于某种原因,当'.after'中有变量或字符串时,函数将不会执行chrome调试器不会提供任何错误 – ilyo 2011-06-01 18:17:32
在newLine中可能有无效的东西?尝试使用一个非常基本的html字符串,看看是否可行。 – aepheus 2011-06-01 18:40:15