如果没有看到其余代码,这有点难说,但是因为您正在动态更改代码,所以不会触发任何事件(我认为更改可能,但仔细研究并意识到它不会)。既然您已经为下拉菜单设置了 onchange 事件,为什么不在此时调用 toggleFunction?
http://jsfiddle.net/spacebean/SvNUw
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val());
toggleLabel();
});
或者,您可以在替换文本后添加焦点并为此设置侦听器:
http://jsfiddle.net/spacebean/SvNUw/2/
$('input, textarea').live('keydown paste focus', toggleLabel);
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val()).focus();
});
或者最后,您可以在复制文本后向元素添加触发器,例如:http:
//jsfiddle.net/spacebean/SvNUw/4/
$('input, textarea').live('keydown paste', toggleLabel);
$('.ui-discussion-text').change(function () {
var oldText = $('.ui-discussion-input textarea').val();
$('.ui-discussion-input textarea').val(oldText + " " + $(this).val()).trigger('paste');
});
而且,如您所见,如果每个事件类型都触发相同的函数,则不需要为每个事件类型单独设置一行。只需像上面那样将它们用空格分隔即可。