如何使用jQuery为WordPress拖拽后获取Widget ID?

时间:2013-12-31 作者:Adeel

我创建了带有选择选项图像的自定义小部件,但第一次选择选项图像在保存后并没有显示,此功能工作正常,我只需要在侧边栏中拖动后加载此功能,然后加载功能?

jQuery(document).ready(function() {
    jQuery(\'body\').on(\'change\', \'.selector\', change_image);     
    function change_image(){
        var $path = jQuery(this).find(\'option:selected\').val();
        jQuery(\'.image_path\').attr(\'src\',$path);
    }
});

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

我的jquery函数在边栏中工作得很好:)。在侧栏中拖动小部件后启用Jquery。

jQuery( document ).ajaxComplete( function( event, XMLHttpRequest, ajaxOptions ) {
    var request = {}, pairs = ajaxOptions.data.split(\'&\'), i, split, widget;
    for( i in pairs ) {
        split = pairs[i].split( \'=\' );
        request[decodeURIComponent( split[0] )] = decodeURIComponent( split[1] );
    }

    if( request.action && ( request.action === \'save-widget\' ) ) {

        widget = jQuery(\'input.widget-id[value="\' + request[\'widget-id\'] + \'"]\').parents(\'.widget\');
        if( !XMLHttpRequest.responseText ) 
            wpWidgets.save(widget, 0, 1, 0);
        else
          jQuery(\'.selector\').on(\'change\', change_image);   

        function change_image(){

                var $path = jQuery(this).find(\'option:selected\').val();
                jQuery(\'.image_path\').attr(\'src\',$path);
        }   

    }
});

结束

相关推荐

Include jQuery UI as a whole

是否可以将jQuery UI作为一个整体,而不是:wp_enqueue_script(\'jquery-ui-core\'); wp_enqueue_script(\'jquery-effects-core\'); // a lot of other jquery ui imports.... 我在codex中进行了搜索,找到了包含脚本的完整列表,但找不到将完整jQuery UI版本作为一个导入包含在内的方法,如:wp_enqueue_script(\'jquery-ui\');