/ / jQuery отворен fancybox, ако условието е изпълнено - jquery, iframe, fancybox

jQuery отворен fancybox, ако е изпълнено условието - jquery, iframe, 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 селектора (или към вашия. \ t .bigfancybox селектора, ако предпочитате), а не с fancybox.

След това потвърдете състоянието след събитие и пожарогасителна кабина програмира ако условието е изпълнено, в противен случай не се прави нищо (връщане 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 за всяка версия.