Конфликтуют части скриптов
Добрый день!
У меня в одном файле находятся два скриптика, относящиеся к разным страницам, и вот первый скрипт делает нерабочий второй. Как можно их изолировать друг от друга, чтобы не было конфликта между ними?
$(document).ready(function() {
//————-los.html
//норма/авария
var los_status_val = $(".los-status-val");
if (los_status_val.html().toLowerCase() == "авария") {
$(los_status_val).first().addClass("los-status-dam").removeClass("los-status-norma");
}
if (los_status_val.html().toLowerCase() == "норма") {
$(los_status_val).first().addClass("los-status-norma").removeClass("los-status-dam");
}
//————-vod_uzel.html
// норма/авария
var vod_status_val = $(".klap");
if (vod_status_val.first().html().toLowerCase() == "откр.") {
$(vod_status_val).first().addClass("vod-dam").removeClass("vod-work");
}
if (vod_status_val.last().html().toLowerCase() == "откр.") {
$(vod_status_val).last().addClass("vod-dam").removeClass("vod-work");
}
if (vod_status_val.first().html().toLowerCase() == "закр.") {
$(vod_status_val).first().addClass("vod-work").removeClass("vod-dam");
}
if (vod_status_val.last().html().toLowerCase() == "закр.") {
$(vod_status_val).last().addClass("vod-work").removeClass("vod-dam");
}
});
Пробовала такой вариант - не помогает:
$(function(){
// один код
});
$(function(){
// другой код
});
|
Зачем же получая jq-объект var los_status_val = $(".los-status-val");, далее $(los_status_val)?
Получен, значит los_status_val.first()... И если нужен переключатель стиля, то может .toggleClass()? |
1)потому что редактор пишет предупреждение, что дублированный jq-селектор
спасибо за toggleClass(), я о нем не знала. Но как это решит мою задачу? |
вот этот вариант помог
if($('.parentelement').length){ //тут какое-то действие с ним } |
Цитата:
Что значит дублированный и почему if($('.parentelement').length) решение проблемы, из того что представлено не понять. |
Этот код использовала вот таким образом:
Обернула блок кода условием, применив к нему родительский класс данной страницы. Просто так селектор же не применишь, поэтому length стоит. Таким образом и ошибки не выдает и конфликта нету. $(".los-status-val") - когда несколько раз использую этот класс, редактор выдает предупреждение о том, типа один и тот же селектор использую много раз, поэтому я его в переменную передала, хотя код спокойно работает и без передачи в переменную. Просто пока я новичок в jq - пишу как умею
//-------------los.html
if($('.los-wrap').length){
//норма/авария
var los_status_val = $(".los-status-val");
if (los_status_val.html().toLowerCase() == "авария") {
$(los_status_val).first().addClass("los-status-dam").removeClass("los-status-norma");
}
if (los_status_val.html().toLowerCase() == "норма") {
$(los_status_val).first().addClass("los-status-norma").removeClass("los-status-dam");
}
}
//-------------vod_uzel.html
if($('.vodomer-wrap').length){
// норма/авария
var vod_status_val = $(".klap");
if (vod_status_val.first().html().toLowerCase() == "откр.") {
$(vod_status_val).first().addClass("vod-dam").removeClass("vod-work");
}
if (vod_status_val.last().html().toLowerCase() == "откр.") {
$(vod_status_val).last().addClass("vod-dam").removeClass("vod-work");
}
if (vod_status_val.first().html().toLowerCase() == "закр.") {
$(vod_status_val).first().addClass("vod-work").removeClass("vod-dam");
}
if (vod_status_val.last().html().toLowerCase() == "закр.") {
$(vod_status_val).last().addClass("vod-work").removeClass("vod-dam");
}
}
|
var vod_status_val = $(".klap");
if (vod_status_val.first().html().toLowerCase() == "откр.") { $(vod_status_val).first().addClass("vod-dam").removeClass("vod-work"); - это зачем? PS. Вы были на прогулке, вернулись вечером, темно, заходя в комнату включаете свет. Если считать выключатель исполнительным устройством, то какими состояниями он обладает? |
А можно пример html. И более детально пояснить что делает скрипт или что он должен делать. :)
|
| Часовой пояс GMT +3, время: 05:58. |