【问题标题】:Old JQuery code that dosen't work anymore (wordpress) [duplicate]不再起作用的旧 JQuery 代码(wordpress)[重复]
【发布时间】:2021-07-16 09:20:19
【问题描述】:

我将一个 wordpress 网站更新到了 5.7.2 版。现在两个自定义的 Metabox 不再工作了。问题是元框的 JQuery 太旧了。 我使用了一个名为 jQuery Migrate Helper 的插件,该代码可以正常工作。

但插件所做的是将 jquery 更改为旧的旧版本(旧版 1.12.4-wp)。

我认为使用这个旧代码不是一个好主意。有人在这里如何帮助处理这个旧代码?

function zib_assistant($post)
{
    wp_nonce_field(basename(__FILE__), 'zib_nonce');
    $zib_stored_meta = get_post_meta($post->ID);
    ?>
    <div class="assistant-wrapper">

        <h2 for="" class="assistant">Assistant</h2>
        <table class="assistant-table">
            <?php
            $assistant = get_post_meta($post->ID, 'assistant');
            $i = 0;
            $output = "";
            do {
                $output .= '<tr>
                    <th>
                        <label for="assistant_image[]">Image</label>
                    </th>
                    <td>
                        <img class="user-preview-image" src="' . $assistant[0][$i]['imgsrc'] . '">

                        <input type="text" class="assistant-image-input" name="assistant[image][]" id="" value="' . $assistant[0][$i]['imgsrc'] . '" class="regular-text"/>
                        <input type="button" class="button-primary upload-assistant-image" value="Upload Image" /><br/>
                        <span class="description">Please upload an image for the Assistent.</span>
                    </td>
                    <th>
                        <label for="assistant_name[]">Name</label>
                    </th>
                    <td>
                        <input type="text" name="assistant[name][]" id="" size="50" value="' . $assistant[0][$i]['name'] . '"/>
                    </td>
                    <td><a href="#" class="button-primary remove-assistant" style="background:red;" >Remove</a></td>
                </tr>';
                $i++;
            } while ($i < count($assistant[0]));
            echo $output;
            ?>
        </table>
        <a href="#" class="add-more-assistent button-primary" style="background:green;" id="remove-assistant">Add</a>

    </div>

    <script type="text/javascript">
        (function ($) {
            $('.upload-assistant-image').live('click', function () {
                tb_show('Image', 'media-upload.php?type=image&TB_iframe=1');
                var imgInput = $(this).parent().children('.assistant-image-input');

                window.send_to_editor = function (html) {
                    imgurl = $('img', html).attr('src');
                    imgInput.val(imgurl);
                    tb_remove();
                };

                return false;
            });
        })(jQuery);

        jQuery(document).ready(function ($) {
            var scntDiv = $('.assistant-table');
            var i = $('.assistant-table tr').size() + 1;

            $('.add-more-assistent').live('click', function () {
                $('<tr>' +
                    '<th>' +
                    '<label for="assistant[img]">Image</label>' +
                    '</th>' +
                    '<td>' +
                    '<input type="text" class="assistant-image-input" name="assistant[image][]" id="" value="" class="regular-text"/>' +
                    '<input type="button" class="button-primary upload-assistant-image" value="Upload Image" /><br/>' +
                    '<span class="description">Please upload an image for the Assistent.</span>' +
                    '</td>' +
                    '<th>' +
                    '<label for="assistant[img]">Name</label>' +
                    '</th>' +
                    '<td>' +
                    '<input type="text" name="assistant[name][]" id="" size="50" value=""/>' +
                    '</td>' +
                    '<td><a href="#" class="button-primary remove-assistant" style="background:red;">Remove</a></td>' +
                    '</tr>').appendTo(scntDiv);
                i++;
                return false;
            });

            $('.remove-assistant').live('click', function () {
                var tr = $(this).closest('tr');
                    
                tr.hide();
                tr.find('input').val('');
                return false;
            });
        });
    </script>
    <?php
}

【问题讨论】:

  • .live 已从 v1.9 中删除,您需要将其替换为相应的 .on

标签: javascript jquery wordpress


【解决方案1】:

完美,这对我有用。

.live 已从 v1.9 中删除,您需要将其替换为相应的 .on – CBroe

    <script type="text/javascript">
        (function ($) {
            $('.upload-doctor-image').on('click', function () {
                tb_show('Image', 'media-upload.php?type=image&TB_iframe=1');
                var imgInput = $(this).parent().children('.assistant-image-input');

                window.send_to_editor = function (html) {
                    imgurl = $('img', html).attr('src');
                    imgInput.val(imgurl);
                    tb_remove();
                };

                return false;
            });
        })(jQuery);

        jQuery(document).ready(function ($) {
            var scntDiv = $('.doctor-table');
            var i = $('.assistant-table tr').size() + 1;

            $('.add-more-doctor').on('click', function () {
                $('<tr>' +
                    '<th>' +
                    '<label for="doctor[image][]">Image</label>' +
                    '</th>' +
                    '<td>' +
                    '<input type="text" class="assistant-image-input" name="doctor[image][]" id="" value="" class="regular-text"/>' +
                    '<input type="button" class="button-primary upload-assistant-image" value="Upload Image" /><br/>' +
                    '<span class="description">Please upload an image for the Assistent.</span>' +
                    '</td>' +
                    '<th>' +
                    '<label for="doctor[name][]">Name</label>' +
                    '</th>' +
                    '<td>' +
                    '<input type="text" name="doctor[name][]" id="" size="50" value=""/>' +
                    '</td>' +
                    '<td><a href="#" class="button-primary remove-doctor" style="background:red;">Remove</a></td>' +
                    '</tr>').appendTo(scntDiv);
                i++;
                return false;
            });


            $('.remove-doctor').on('click', function () {
                var tr = $(this).closest('tr');
                    
                tr.hide();
                tr.find('input').val('');
                return false;
            });
        });
    </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多