我有一个按钮,可以创建一个具有唯一textarea
的动态id
字段。每次创建一个新元素时,我都希望jQuery在这些动态textarea字段上触发。
我尝试了.on('click')
方法,它不会在动态元素上运行jQuery,除非生成它们的按钮被按下两次。所以这不会起作用。其次,当我创建第二个动态textarea字段时,它根本不起作用,即使我单击按钮两次。
jQuery('button').on('click', function() {
var dynamicElement = jQuery('.parentclass').find('textarea').attr('id');
//countChar is part of a function not displayed here (works fine).
countChar(jQuery('#'+dynamicElement).get(0));
//This code below never seems to apply itself to any dynamic textarea fields except for
//the first one. It needs to apply itself to all of them and trigger each time a new
//dynamic textarea field is created.
jQuery('#'+dynamicElement).keyup(function() {
countChar(this);
})
});
我将如何开展这项工作?
谢谢。
修改
这是函数countChar(它添加了一个字符计数器并限制了字符)。
功能
function countChar(val) {
var allowed_length = 700; // character count limit here
var len = val.value.length;
if (len >= allowed_length) {
val.value = val.value.substring(0, allowed_length);
jQuery(".chars[data-textarea="+val.id+"]").text(0);
} else {
jQuery(".chars[data-textarea="+val.id+"]").text(allowed_length - len);
}
}
HTML
<tr class="parentclass">
<td class="label">
<label>
Custom Title
</label>
<span class="field-instructions">
Please enter the content of this field.
Remaining: <span class="chars" data-textarea="dynamic-textarea-1"></span>
</span>
</td>
<td>
<div class="inner">
<textarea rows="4" id="dynamic-textarea-1" class="textarea"></textarea>
</div>
</td>
答案 0 :(得分:0)
您需要做的是设置变量ex。 var x = document.getElementById(&#34;元素名称&#34;);然后更改你想要的任何属性,任何其他事件都需要在click事件之外,因此它可以自行触发。希望这有帮助