Конфликтуют части скриптов
Добрый день!
У меня в одном файле находятся два скриптика, относящиеся к разным страницам, и вот первый скрипт делает нерабочий второй. Как можно их изолировать друг от друга, чтобы не было конфликта между ними? $(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, время: 17:59. |