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ď č. 1Lepší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é.