Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2015, 11:34
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

Конфликтуют части скриптов
Добрый день!

У меня в одном файле находятся два скриптика, относящиеся к разным страницам, и вот первый скрипт делает нерабочий второй.

Как можно их изолировать друг от друга, чтобы не было конфликта между ними?

$(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(){
    // другой код
});
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2015, 12:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем же получая jq-объект var los_status_val = $(".los-status-val");, далее $(los_status_val)?

Получен, значит los_status_val.first()... И если нужен переключатель стиля, то может .toggleClass()?
Ответить с цитированием
  #3 (permalink)  
Старый 27.09.2015, 14:41
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

1)потому что редактор пишет предупреждение, что дублированный jq-селектор

спасибо за toggleClass(), я о нем не знала.

Но как это решит мою задачу?
Ответить с цитированием
  #4 (permalink)  
Старый 27.09.2015, 14:55
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

вот этот вариант помог

if($('.parentelement').length){
//тут какое-то действие с ним
}
Ответить с цитированием
  #5 (permalink)  
Старый 27.09.2015, 15:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nailya
Но как это решит мою задачу?
Это не решение проблемы, а возможное упрощение кода, если действительно нужен переключатель.

Что значит дублированный и почему if($('.parentelement').length) решение проблемы, из того что представлено не понять.
Ответить с цитированием
  #6 (permalink)  
Старый 27.09.2015, 15:42
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

Этот код использовала вот таким образом:

Обернула блок кода условием, применив к нему родительский класс данной страницы. Просто так селектор же не применишь, поэтому 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");
        }
    }
Ответить с цитированием
  #7 (permalink)  
Старый 27.09.2015, 16:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var vod_status_val = $(".klap");

if (vod_status_val.first().html().toLowerCase() == "откр.") {
$(vod_status_val).first().addClass("vod-dam").removeClass("vod-work"); - это зачем?

PS. Вы были на прогулке, вернулись вечером, темно, заходя в комнату включаете свет. Если считать выключатель исполнительным устройством, то какими состояниями он обладает?

Последний раз редактировалось laimas, 27.09.2015 в 16:22.
Ответить с цитированием
  #8 (permalink)  
Старый 27.09.2015, 22:55
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

А можно пример html. И более детально пояснить что делает скрипт или что он должен делать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить скрипт после выполнения остальных скриптов страницы alexandre0sheva Events/DOM/Window 6 26.02.2014 15:29
Находится ли блок в видимой части quizzer Javascript под браузер 6 26.02.2014 02:50
fancybox iframe подгрузка скриптов Pashok jQuery 2 29.01.2014 01:32
До подгрузки скриптов код ломает страницу spo jQuery 2 03.07.2013 17:05
Динамическая загрузка скриптов demoniqus Общие вопросы Javascript 12 18.04.2013 19:50