How can I open a Superfish menu on click rather than hover in Drupal 7?

First use hook_preprocess_page() in your theme to insert jQuery menu.js file when menu should be active:


function theme_name_preprocss_page(&$variables, $hook) {
if (isset($variables['page']['header']['superfish_1'])) {
drupal_add_js(drupal_get_path('theme', 'theme_name') . '/js/menu.js');
}
}

Then in menu.js insert this:

jQuery(function ($) {
$('a.sf-depth-1').on('mouseover', function(event) {
return false;
});
$('a.menuparent.sf-depth-1').on('click', function(event) {
// Close any open dropdown menus.
$.each($(this), function(index, element) {
$(element).parent().parent().find('li.menuparent > ul').addClass('sf-hidden');
});
// Open the clicked dropdown menu.
$(this).next().removeClass('sf-hidden');
event.preventDefault();
});
});

This will replace hover action with click action in first level of your Superfish menu. If you need more levels, just add same block code for a.sf-depth-LEVEL rule.
Solution inspired form this stack overflow thread