• hi there spacious team,

    first, thanks really, really a lot for such a nice and free available theme. this theme is really awesome and i do like it a lot, especially as you created your theme functions via function_exists() call, which makes it very easy to overwrite in a child theme. thanks a lot, guys 😉

    but i found an issue when using your theme with the WP favorite posts plugin

    https://wordpress.org/plugins/wp-favorite-posts/

    the wp favorite post plugin does some jquery ajax calls when marking posts as favorite posts

    not sure which javascript is not properly done? but if i remove the navigation.js spacious theme file, then wp favorite posts ajax call can do its thing.

    i did have a look and figured out that navigation.js is doing something they call a self invoking function

    ( function() {
        // do navigation stuff
    } )();

    and this self invoking function causes trouble with the ajax calls from the wp favorite post plugin, which was quite annoying for me and took me a while to figure that one out.

    so i removed the self invoking function and put all that javascript stuff into a jquery document ready thing, like so:

    jQuery(document).ready( function($) {
    	// do navigation stuff
    });

    and the conflict is finally gone and i can mark posts as favorite again 😉 but i’m actually really not sure if this is ok? or if it will cause further problems? as i’m really no javascript guru 😉

    the jquery code from the wp favorite post plugin goes as this:

    jQuery(document).ready( function($) {
        $('.wpfp-link').live('click', function() {
            dhis = $(this);
            wpfp_do_js( dhis, 1 );
            // for favorite post listing page
            if (dhis.hasClass('remove-parent')) {
                dhis.parent("li").fadeOut();
            }
            return false;
        });
    });
    
    function wpfp_do_js( dhis, doAjax ) {
        loadingImg = dhis.prev();
        loadingImg.show();
        beforeImg = dhis.prev().prev();
        beforeImg.hide();
        url = document.location.href.split('#')[0];
        params = dhis.attr('href').replace('?', '') + '&ajax=1';
        if ( doAjax ) {
            jQuery.get(url, params, function(data) {
                    dhis.parent().html(data);
                    if(typeof wpfp_after_ajax == 'function') {
                        wpfp_after_ajax( dhis ); // use this like a wp action.
                    }
                    loadingImg.hide();
                }
            );
        }
    }

    what are your thoughts on my changes? is it ok? or will it cause trouble? or is their a better way to solve this conflict?

    thanks again for the spacious theme! you guys are awesome 😉

    greetings
    becki

  • The topic ‘javascript conflict with wp favorite posts plugin’ is closed to new replies.