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 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