/ / jQuery відкриває fancybox, якщо виконується умова - jquery, iframe, fancybox

jQuery відкриває fancybox, якщо виконується умова - jquery, iframe, fancybox

У мене є якір, який відкриває скриньку. Я хочу, щоб fancybox відкривався тільки тоді, коли було зроблено вибір з вікна вибору.

Я дізнався, що прив'язка події натискання до якоря з preventDefault або return false не перешкоджає відкриттю fancybox. Я знайшов спосіб зупинити розкриття. Тепер у мене є:

HTML

<div>
<a id="brasil" href="<?php echo $this->url( array( "module" => "amodule", "controller"  => "acontroller", "action" => "soccer"))?>" class="someclass bigfancybox"><?=$this->translate("soccer")?></a>
</div>

Розміри (ширина, висота, тощо, визначені у fancybox.js) fancybox прив'язані до класу "bigfancybox" якоря.

У jQuery у мене є перевірка, чи зроблено вибір на match_id:

jQuery("#brasil").fancybox({
onStart: function() {
var matchid = jQuery("#match_id").val();
if(matchid == "")
{
alert(selectmatchmessage);
return false;
}
}
});

Це все працює відмінно, крім того, що якщо умовазустрічається, тепер fancybox відкривається в розмірах за замовчуванням і не відкривається як iframe, як це було б без умови jQuery. Чи є спосіб перевірити стан спочатку перед відкриттям fancybox в iframe?

Відповіді:

2 для відповіді № 1

Можливо, вам доведеться прив'язати a click подія твоєму #brasil селектор (або ваш .bigfancybox перемикач, якщо ви віддаєте перевагу), а не \ t

Потім перевірте стан після подія і пожежогасіння казино програмно якщо умова зустрічається інакше нічого не робити (повернення false) люблю :

jQuery("#brasil").on("click", function () {
var matchid = jQuery("#match_id").val();
if (matchid !== "") {
// condition is NOT empty, so fire fancybox
jQuery.fancybox({
// fancybox API options
href: this.href,
type: "iframe"
});
};
return false; // prevent default and stop propagation
}); // on click

Побачити JSFIDDLE

ПРИМІТКА :

Скрипка використовує fancybox v1.3.4, але код буде також працювати для fancybox v2.x теж, просто переконайтеся, що ви використовуєте правильні варіанти API для кожної версії.