使用ON SELECT时的wp.media Java脚本问题

时间:2017-10-01 作者:hesham shawky

我不是JS方面的专家,所以我在我的插件中遇到了一个问题,问题是我使用wp.media 对于每个字段,您将在下面的代码中看到:

var mediaClientUploader;

// background
$(document).on(\'click\', \'.upload_client_logo\', function(e) {

    // blocking
    e.preventDefault();
    var $this = $(this);
    var  myInput = $this.prev(\'input\');

    //alert(myInput.data(\'repeat-count\'));

    if ( mediaClientUploader ) {
        mediaClientUploader.open();

        return;
    }

    mediaClientUploader = wp.media.frames.file_frame = wp.media({

        title: \'Upload Picture\',
        button: {
            text: \'Choose Picture\'
        },

        multiple: false

    });

    console.log(mediaClientUploader);

    mediaClientUploader.on(\'select\', function () {


        attachment = mediaClientUploader.state().get(\'selection\').toJSON();

        myInput.val(attachment.url);

    });

    mediaClientUploader.open();

});
问题是这个特定的部分

mediaClientUploader.on(\'select\', function () {


        attachment = mediaClientUploader.state().get(\'selection\').toJSON();

        myInput.val(attachment.url);

    });
它只运行了一次,我的意思是,对于第一次选择,它将为我选择的第一次输入反复附加URL!!

我知道这个问题我可以用$(document).on("select", "#div", function) 但我不知道如何将此方法用于wp。媒体或我的varmediaClientUploader

1 个回复
最合适的回答,由SO网友:hesham shawky 整理而成

我发现了问题:“D这是代码的一部分

 if ( mediaClientUploader ) {
    mediaClientUploader.open();

    return;
}
它会在第一次单击后停止我的选择事件功能,因此我只需删除它,一切都很好

结束