2013-12-13 2 views
1

Я использую Colorbox и имею все стандартные функциональные возможности. Этот вопрос находится вне обычного сценария использования колонок.Как я могу предотвратить запуск группы колонок JQuery при нажатии или нажатии кнопки мыши?

Мне нужно уметь перехватывать запуск колодки, щелкая и оценивать состояние, прежде чем разрешить отображение цвета. Таким образом, у меня есть группа изображений (с использованием rel), и когда нажимается любое изображение, я хочу иметь возможность запускать собственный код для проверки некоторых переменных и решить, могу ли я разрешить всплывающее окно colorbox. Если условие не установлено, я хочу отменить всплывающее окно. Я не видел простого способа сделать этот перехват/ввод кода в любой из образцов онлайн, хотя, возможно, я что-то пропустил.

+0

Вы пробовали использовать крючки событий colorbox? http://www.jacklmoore.com/colorbox/ (см. внизу) –

+0

Должен признаться, я не знал, как отменить раскраску цвета изнутри крючка, и не было никакой документации о том, как это сделать, поэтому я не потрудился с этим. –

ответ

3

Ключом является укладка ваших обработчиков и короткое замыкание вызова на colorbox с помощью более раннего обработчика. Это должно работать, но я не проверял:

Зарегистрировать обработчик щелчка первой НАПРОТИВ декларации ColorBox, например, так:

$('a.gallery') 
    .on('click', onClickGallery) 
    .colorbox({rel:'gal'}); 

И затем остановить немедленное распространение, если ваше условие не выполнено:

onClickGallery = function (event) { 
    var is_allowed = checkIsAllowed(); 
    if (! is_allowed) { 
    event.stopImmediatePropagation(); 
    event.preventDefault(); 
    return false; 
    } 
    return true; 
}; 

Я все время делаю это в производстве. Удачи!

+0

Пробовал это, но обнаружил, что, хотя colorbox не запускался (это то, что мы хотели), страница вместо этого переходила и переходила к href привязки. Таким образом, событие отменило вызов colorbox, но снова отказалось от поведения якоря по умолчанию. Какие-либо предложения? –

+0

@JasonLeverett, даже если ваше редактирование одобрено, не добавляйте комментарии в редактирование. –

+0

Извините, он не примет мое редактирование, если я не добавлю больше определенного количества символов. Поскольку я добавил только 2 кавычки, мне пришлось добавить ненужные слова, чтобы форма позволила мне отправить его. –

Смежные вопросы