2016-12-13 3 views
3

私はphone-gapプロジェクト用にカスタムドロップダウンを書きました。それは、3つのエントリ:Enterprices Routing & Switches,Junos SecurityService Provider Routing and Switchingを持っています。 3つのエントリのいずれかを選択するたびに、選択されたエントリが2回表示されます。選択したエントリを1回だけ表示したい。私のJavaScriptコードは次のとおりです。カスタムドロップダウンが期待通りに機能しない

$(".current_track").click(function() { 
    if ($('.track').is(':visible')) { 
    $(".track").hide(); 
    $(".trackIcon").removeClass("trackOpenIcon").addClass("trackCloseIcon"); 
    if ($('.trackName').text() != "Select Track") { 
     $(".category").show(); 
     $('.lock_hide').show(); 
     $('#TrackBuy').show(); 
    } 
    } else { 
    $(".category").hide(); 
    $('.lock_hide').show(); 
    $('#TrackBuy').hide(); 
    $(".track").show(); 
    $('.lock_hide').show(); 
    $(".trackIcon").removeClass("trackCloseIcon").addClass("trackOpenIcon"); 
    } 
}); 
$('.trackDiv').on("click", ".track", function() { 
    $('.trackName').text($(this).text()); 
    $('.trackName').attr("id", $(this).attr("id")); 
    $(".track").hide(); 
    $(".trackIcon").removeClass("trackCloseIcon").addClass("trackOpenIcon"); 
    $('.lock_hide').show(); 
    // saving user selected/clicked trackid and track name to local stroage 
    localStorage.setItem("mainTrackid", $(this).attr("id")); 
    localStorage.setItem("mainTrackname", $(this).text()); 
    localStorage.setItem("selectedTrackPayStatus", $(this).attr("payStatus")); 
    localStorage.removeItem("selectedTrackPrice"); 
    // check first paper exist or not if exist means load exams list 

    checkTrackpapersExist(); 

}); 

Entire code example

+0

それは二度選択したエントリを示ししかし、あなたは選択ドロップダウンに意味ですか? – ScanQR

+0

ええ、私は選択ドロップダウンで意味する –

答えて

1

Updated fiddle

トリックを行うには、別のクラスselectedを使用できます。

すべてtrack年代からselectedクラスを削除して、クリックされたものにそれを追加します。

$('.trackDiv').on("click", ".track", function() { 
    $('.track').removeClass('selected'); 
    $(this).addClass('selected'); 

    $('.trackName').html($(this).html()); //Use '.html()' to show the icon 
    .... 
}); 

ドロップダウンから選択trackを隠す:

$(".current_track").click(function() { 
    ..... 

    $('.track.selected').hide(); 
}); 

は、この情報がお役に立てば幸いです。

$(".current_track").click(function() { 
 

 
    if ($('.track').is(':visible')) { 
 
    $(".track").hide(); 
 
    $(".trackIcon").removeClass("trackOpenIcon").addClass("trackCloseIcon"); 
 
    if ($('.trackName').text() != "Select Track") { 
 
     $(".category").show(); 
 
     $('.lock_hide').show(); 
 
     $('#TrackBuy').show(); 
 
    } 
 
    } else { 
 
    $(".category").hide(); 
 
    $('.lock_hide').show(); 
 
    $('#TrackBuy').hide(); 
 
    $(".track").show(); 
 
    $('.lock_hide').show(); 
 
    $(".trackIcon").removeClass("trackCloseIcon").addClass("trackOpenIcon"); 
 
    } 
 

 
    $('.track.selected').hide(); 
 
}); 
 
$('.trackDiv').on("click", ".track", function() { 
 
    $('.track').removeClass('selected'); 
 
    $(this).addClass('selected'); 
 

 
    $('.trackName').html($(this).html()); 
 
    $('.trackName').attr("id", $(this).attr("id")); 
 
    $(".track").hide(); 
 
    $(".trackIcon").removeClass("trackCloseIcon").addClass("trackOpenIcon"); 
 
    $('.lock_hide').show(); 
 
});
.trackDiv > .track > .fa-lock { 
 
    margin-top: 3px; 
 
} 
 

 
.fa-lock { 
 
    color: #fff; 
 
    font-size: 23px; 
 
} 
 

 
.lock_category { 
 
    padding-right: 0px; 
 
    padding-top: 3px; 
 
} 
 

 
.lock_hide { 
 
    display: none; 
 
} 
 

 
.fa-unlock { 
 
    color: #fff; 
 
    font-size: 17px; 
 
} 
 

 
.trackDiv { 
 
    background-color: #374550; 
 
    border-radius: 4px; 
 
    height: 40%; 
 
    margin: 2% 0 0; 
 
    padding: 3% 2.7% 2.9%; 
 
    width: 100%; 
 
} 
 

 
.trackName { 
 
    color: #fff; 
 
    font-family: "robotRegular"; 
 
    font-size: 16px; 
 
    font-weight: 500; 
 
} 
 

 
.trackOpenIcon { 
 
    background-image: url("../JunosImages/mob/down-arrow_normal1.png"); 
 
    background-image: url("../JunosImages/mob/front-arrow_normal_tab.png"); 
 
    background-repeat: no-repeat; 
 
    background-size: 100% 100%; 
 
    display: block; 
 
    height: 11px; 
 
    margin-top: 1.5%; 
 
    width: 19px; 
 
} 
 

 
.trackCloseIcon { 
 
    background-image: url("../JunosImages/mob/front-arrow_normal_tab.png"); 
 
    background-repeat: no-repeat; 
 
    background-size: 100% 100%; 
 
    display: block; 
 
    height: 18px; 
 
    margin-top: 0.7%; 
 
    width: 12px; 
 
} 
 

 
.track { 
 
    color: #fff; 
 
    display: block; 
 
    font-family: "robotRegular"; 
 
    font-size: 16px; 
 
    font-weight: 500; 
 
    padding: 5% 0 0; 
 
    width: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 

 
<div id="categorylist"> 
 
    <div class="trackDiv"> 
 
    <div class="current_track"> 
 
     <span class="trackName">Select Track</span> 
 
     <span class="trackIcon trackOpenIcon pull-right"></span> 
 
     <div><span class="label label-primary Buy" id="TrackBuy" style="display:none">Buy $24</span></div> 
 
    </div> 
 
    <span id="t1" class="track">Enterprices Routing & Switches <span class="fa fa-lock pull-left"></span></span> 
 
    <span id="t2" class="track">Junos Security</span> 
 
    <!-- <span id="t3" class="track">Data Center Design</span> --> 
 
    <span id="t4" class="track"> Service Provider Routing and Switching</span> 
 
    </div> 
 
    <div class="category"> 
 
    <span class="ctgryName">JNCIs - SEC</span> 
 
    <span class="ctgryIcon pull-right"></span> 
 
    </div> 
 
    <div class="category"> 
 
    <span class="ctgryName">JNCIS - ENT</span> 
 
    <span class="ctgryIcon pull-right"></span> 
 
    </div> 
 
    <div class="category"> 
 
    <span class="ctgryName">JNCIS - ENT</span> 
 
    <span class="ctgryIcon pull-right"></span> 
 
    </div> 
 
    <div class="category"> 
 
    <span class="ctgryName" id="ctgryName">JNCIA - Junos</span> 
 
    <span class="ctgryIcon pull-right"></span> 
 
    </div> 
 
</div>

+0

クール、それは期待どおりに働いた。しかし、 'Enterprices Routing&Switches 'に先行するロックシンボルがあります。 'Enterprices Routing&Switches'を選択したときに表示させたいのですが... –

+0

ようこそ、' $( '。trackName')。html($(this).html()); '代わりに、私の更新をチェックしてください。 –

関連する問題