我试图让这个自动调整功能起作用。 如果我在页面加载之前创建textarea它可以正常工作:
$(document).ready(function(){
$('.hellothere').autosize();
});
但是,如果我在页面加载后使用jQuery创建textarea,它没有绑定到此函数,有什么帮助吗?
答案 0 :(得分:2)
你不能,你需要为每个新创建的textarea调用.autosize()
。如果这是事件绑定,你可以delegate()
,但是你正在初始化一个插件,它需要有实际的元素才能使用。
答案 1 :(得分:2)
你需要为每个新创建的textarea调用.autosize()。
或者你可以使用liveQuery一个jquery插件这是一个很棒的插件,并自动将autosize应用于每个新创建的元素。
答案 2 :(得分:2)
您可以尝试livequery
$(document).ready(function(){
$('.hellothere').livequery(function() {
$(this).autosize();
});
});
答案 3 :(得分:0)
我认为您正在寻找 .on():link
将实时事件处理程序附加到选择(无论它们是否存在)。
$(function(){
// Attach a listener to all paragraphs
$('body').on(('click', 'p', function(event){
$(this).css('color', 'blue');
});
// Dynamically add a paragraph
$('body').append('<p>Hello World!</p>');
});
但是既然你正在用jQuery添加textarea,为什么不在插入后立即调用 .autosize()?
$('body').append('<textarea class="hellothere"></textarea>').autosize();
答案 4 :(得分:0)
要绑定未在页面上加载的元素,请使用其中一个与jQuery版本相关的元素。
$("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+
参考:
答案 5 :(得分:-1)
使用某人提供的答案的一部分,然后删除,这有效:
$('.hellothere').live('click',function(){ $(this).autosize(); })