/ / Ako zastaviť plugin jQuery na konkrétnej stránke? - javascript, jquery, asp.net-mvc

Ako zastaviť plugin jQuery na konkrétnej stránke? - javascript, jquery, asp.net-mvc

Mám webovú aplikáciu, ktorá používa rozloženia MVC,všetky moje zobrazenia dedia z tejto stránky, na stránke s rozložením používam doplnok jQuery (iCheck), teraz mám stránku, ktorá tiež dedí z môjho rozloženia, ale nechcem, aby táto stránka používala tento doplnok, v rozložení som mať tento skript:

<script>
$(function() {
$("input").iCheck();
});
</script>

Teraz existuje nejaký spôsob, ako zistiť, že jQuery nepoužíva tento doplnok na tejto stránke?

odpovede:

0 pre odpoveď č. 1

Lepším prístupom namiesto spoliehania sa na viewbags a ďalšie kódy na strane servera je použitie triedy v prvkoch, pretože je jasnejšie, aký je zámer kódu. Tu je príklad.

<input class="not-icheck" value="I"m a rebel!" />
...
<script>
$(function()
{
$("input:not(.not-icheck)").iCheck();
});
</script>

0 pre odpoveď č. 2

Jedným zo spôsobov je toto:

V rozložení nahraďte kód skriptu týmto:

@{
bool? dontICheck = ViewBag.dontICheck;
}
if(!dontICheck.getValueOrDefault()){
<script>
$(function() {
$("input").iCheck();
});
</script>
}

To znamená, že iCheck bude predvolene fungovať. Ak nechcete, aby to fungovalo, pridajte tento riadok do metódy akcie zobrazenia, ktorú nechcete používať iCheck:

ViewBag.dontICheck = true;

0 pre odpoveď č. 3

Jednoduchou metódou je pridať triedu, kde to nechcete použiť, napr .:

<input class="noicheck" ...

potom použite toto vo svojom selektore:

$("input:not(.noicheck)").iCheck();

To potom bude fungovať na celom vašom webe bez toho, aby ste potrebovali zmeny po jednotlivých stránkach alebo akékoľvek zmeny vo vašom viewmodeli / viewbagu atď., A stále to umožní niektorým ovládacím prvkom uplatnenie tejto kontroly.


0 pre odpoveď č. 4

Predpokladám, že vaša stránka obsahuje určitú konkrétnu triedu pre styling (napríklad „špeciálna stránka“).

Môžete to použiť na zistenie, že sa nachádzate na tejto stránke, a nie na inicializáciu doplnku jQuery.

vymeniť

$("input").iCheck();

s

if(!$(".special-page").length){
$("input").iCheck();
}

0 pre odpoveď č. 5

Aktuálny blok skriptu nahraďte týmto:

@if (IsSectionDefined("iCheck")) {
RenderSection("iCheck");
}
else {
<script>
$(function() {
$("input").iCheck();
});
</script>
}

Potom k názoru, že tento beh nechcete, pridajte:

@section iCheck {}

Definovaním časti bude obsahovať aj rozloženieobsah sekcie, nie predvolený kód (váš skript iCheck), ktorý bude prázdny, pretože v zátvorkách nebolo nič uvedené.