我使用jquery附加<textarea>
并得到fallowing:
<textarea class="comment_textarea" placeholder="Comment on this post.." title="Comment on this post.." name="comment_here"></textarea>
当我尝试运行一个函数时:
function makeComment(){
var comment = $(this).val();
console.log(comment);
}
$("#newsfeed_posts").bind('keyup', '.comment_textarea', makeComment);
我在我的控制台上得到一个空值,我也尝试从textarea访问不同的属性,但我没有任何东西。当我按下按键时,有人可以帮助我获得价值吗?如果可能的话,当我特意按下输入时? 提前谢谢你。
答案 0 :(得分:2)
如果您尝试使用事件委派,可以尝试:
$("body").on('keyup', '.comment_textarea', makeComment);
绑定可能是在文本区域是dom的一部分之前发生的,这应该绕过它。
答案 1 :(得分:0)
试试这个:
function makeComment(ele){
return $(ele).val();
}
$("#newsfeed_posts").keyup(function(){
var comment = makeComment('.comment_textarea');
console.log(comment);
});
答案 2 :(得分:0)
你使用了带有错误语法的bind()。
$(selector).bind( eventType [, eventData ], handler(eventObject) )
其他,如果你想使用委托,请使用live(旧版本的Jquery),on(新版本)或delegate() 示例
$( "#foo" ).bind( "click", {
msg: "Click message"
}, function( event ) {
alert( event.data.msg );
});
在您的情况下,我认为您可以使用
$(".comment_textarea").live('keyup', makeComment);
$("#newsfeed_posts").on('keyup', '.comment_textarea', makeComment);
or $("#newsfeed_posts").delegate('.comment_textarea','keyup', makeComment);
希望对你有帮助