我在自定义分类页面中自定义快速编辑框时遇到一些问题。
这是我的代码:
function lnw_quick_edit_custom_box($column_name, $screen, $name) {
if ( $screen !== \'edit-tags\' ) return;
if ($column_name == \'special_star\') {
?>
<fieldset>
<div id="my-custom-content" class="inline-edit-col-special_star">
<label>
<span class="title"><?php _e(\'Special Star\', \'my-theme\'); ?></span>
<span class="input-text-wrap">
<select name="term_meta[special_star]" id="special_star_val">
<option value="0">No</option>
<option value="1">Sì</option>
</select>
</span>
</label>
</div>
</fieldset>
<script>
jQuery(\'a.editinline\').on(\'click\', function(){
var now = jQuery(this).closest(\'tr\').find(\'td.column-special_star\').text();
//console.log(now);
if (now.charAt(0)==\'S\') {now_i = \'1\';};
if (now.charAt(0)==\'N\') {now_i = \'0\';};
//console.log(now_i);
jQuery(\'#special_star_val\').val( now_i );
});
add_action(\'quick_edit_custom_box\', \'lnw_quick_edit_custom_box\', 10, 3);
代码似乎工作正常,因为now和now\\u i变量由正确的值填充,但jQuery(“#special\\u star\\u val”)。val(now\\u i)不选择选择字段的正确选项。
我不明白为什么。。。
非常感谢!达尼洛
SO网友:Max Yudin
如果您有多个<a href="#" class="editinline">#</a>
你的jQuery
应使用on()
以节省内存。添加.editinline
选择器将函数(处理程序)附加到多个元素(在本例中为-<body>
儿童)
jQuery(\'body\').on(\'click\', \'.editinline\', function(){
var now = jQuery(this).closest(\'tr\').find(\'td.column-special_star\').text();
//console.log(now);
if (now.charAt(0)==\'S\') {now_i = \'1\';};
if (now.charAt(0)==\'N\') {now_i = \'0\';};look like this
//console.log(now_i);
jQuery(\'#special_star_val\').val( now_i );
});
https://jsfiddle.net/47fd3fnu/
如果您有单间,您可以使用
click()
这是
on(\'click\', \'...\', \'...\')
:
jQuery(\'.editinline\').click(function(){
..........
});
https://jsfiddle.net/47fd3fnu/2/