我在编辑屏幕中添加了一列,并在快速编辑中为该列添加了输入。每样东西都像我期望的那样保存和显示,只需一个小嗝。
如果我单击特定帖子的快速编辑,请更改自定义输入,然后保存。。。。嗯,该列正确更新。但是,如果再次单击“快速编辑”(Quick Edit)(不刷新页面),自定义输入将保持原始输入。。。。即使我使用.on()
, inlineEditPost.revert()
即使隐藏值被正确更新(我可以通过Chrome的开发工具看到)。也许这完全是一个JS错误,但我想我会先在这里发布。
This is the content of my custom column:
echo $sub = get_post_meta(get_the_ID(), \'kia_subtitle\', true);
echo \'<div class="hidden kia-subtitle-value">\' . $sub . \'</div>\';
This is the jquery I am using to set the custom input\'s value in Quick Edit mode:
$( \'.editinline\' ).on( \'click\', function(){
// revert Quick Edit menu so that it refreshes properly
inlineEditPost.revert();
posttitlelabel = $( \':input[name="post_title"]\', \'.inline-edit-row\' ).parents( \'label\' );
tag_id = $( this ).parents( \'tr\' ).attr( \'id\' );
subtitle = $( \'div.kia-subtitle-value\', \'#\' + tag_id ).text();
$( \'input.kia-subtitle-input\', \'.inline-edit-row\' ).val( subtitle ).parents( \'label\' ).insertAfter( posttitlelabel );
});
The
posttitlelabel
, 和
insertAfter
部分只是移动输入,使其紧跟常规标题。
最合适的回答,由SO网友:helgatheviking 整理而成
解决方案在jquery方面。这个on函数需要向上冒泡,以确保总是获取最新的ajax添加内容。我只需调整第一行,使其与jquery文档更加一致.on()
.
$( \'#the-list\' ).on( \'click\', \'.editinline\', function(){
// revert Quick Edit menu so that it refreshes properly
inlineEditPost.revert();
posttitlelabel = $( \':input[name="post_title"]\', \'.inline-edit-row\' ).parents( \'label\' );
tag_id = $( this ).parents( \'tr\' ).attr( \'id\' );
subtitle = $( \'div.kia-subtitle-value\', \'#\' + tag_id ).text();
$( \'input.kia-subtitle-input\', \'.inline-edit-row\' ).val( subtitle ).parents( \'label\' ).insertAfter( posttitlelabel );
});