分类法快速编辑框出现的问题

时间:2016-03-14 作者:Danilo Di Leo

我在自定义分类页面中自定义快速编辑框时遇到一些问题。

这是我的代码:

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)不选择选择字段的正确选项。

我不明白为什么。。。

非常感谢!达尼洛

1 个回复
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/

相关推荐