Authored by xuqi

senior options hover

@@ -185,29 +185,33 @@ @@ -185,29 +185,33 @@
185 <span class="iconfont">&#xe600;</span> 185 <span class="iconfont">&#xe600;</span>
186 186
187 <div class="senior-up-icon"></div> 187 <div class="senior-up-icon"></div>
188 -  
189 - <div class="senior-sub hide" data-attr="{{attr}}">  
190 - {{#if showMulti}}  
191 - <span class="multi-select">多选 +</span>  
192 - {{/if}}  
193 - <ul class="clearfix check-container">  
194 - {{#each sub}}  
195 - <li class="attr">  
196 - <a href="{{href}}">  
197 - <span class="iconfont checkbox" data-id="{{id}}">&#xe613;</span>  
198 - <span>{{name}}</span>  
199 - </a>  
200 - </li>  
201 - {{/each}}  
202 - </ul>  
203 - <div class="btns">  
204 - <button class="multi-select-ok dis">确定</button>  
205 - <button class="multi-select-cancel">取消</button>  
206 - </div>  
207 - </div>  
208 </li> 188 </li>
209 {{/each}} 189 {{/each}}
210 </ul> 190 </ul>
  191 +
  192 + <div class="senior-sub-wrap">
  193 + {{#each seniorChose}}
  194 + <div class="senior-sub hide" data-attr="{{attr}}">
  195 + {{#if showMulti}}
  196 + <span class="multi-select">多选 +</span>
  197 + {{/if}}
  198 + <ul class="clearfix check-container">
  199 + {{#each sub}}
  200 + <li class="attr">
  201 + <a href="{{href}}">
  202 + <span class="iconfont checkbox" data-id="{{id}}">&#xe613;</span>
  203 + <span>{{name}}</span>
  204 + </a>
  205 + </li>
  206 + {{/each}}
  207 + </ul>
  208 + <div class="btns">
  209 + <button class="multi-select-ok dis">确定</button>
  210 + <button class="multi-select-cancel">取消</button>
  211 + </div>
  212 + </div>
  213 + {{/each}}
  214 + </div>
211 </div> 215 </div>
212 </div> 216 </div>
213 {{/if}} 217 {{/if}}
@@ -32,6 +32,12 @@ var $udPrice = $('.ud-price-range'), @@ -32,6 +32,12 @@ var $udPrice = $('.ud-price-range'),
32 //分类相关变量 32 //分类相关变量
33 var $sortSub = $('.sort-sub-wrap'); 33 var $sortSub = $('.sort-sub-wrap');
34 34
  35 +//高级选项相关变量
  36 +var $seniorSubWrap = $('.senior-sub-wrap'),
  37 + $seniorAttrWrap = $('.senior-attr-wrap');
  38 +
  39 +var seniorHoverTime, hoveredIndex;
  40 +
35 //清除checkbox选中状态 41 //清除checkbox选中状态
36 function clearChecked($checkbox) { 42 function clearChecked($checkbox) {
37 $checkbox.removeClass('checked').html(checkUnicode.unchecked); 43 $checkbox.removeClass('checked').html(checkUnicode.unchecked);
@@ -241,15 +247,26 @@ if ($udPrice.length > 0) { @@ -241,15 +247,26 @@ if ($udPrice.length > 0) {
241 } 247 }
242 248
243 //【高级选项】鼠标移入显示子项 249 //【高级选项】鼠标移入显示子项
244 -$('.senior-attr-wrap').on('mouseenter', '.attr', function() {  
245 - $(this).children('.senior-sub').removeClass('hide'); 250 +$seniorAttrWrap.on('mouseenter', '.attr', function() {
  251 + var index = $(this).addClass('hover').index();
  252 +
  253 + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide');
246 }).on('mouseleave', '.attr', function() { 254 }).on('mouseleave', '.attr', function() {
247 - $(this).children('.senior-sub').addClass('hide'); 255 + var $this = $(this),
  256 + index = $this.index();
  257 +
  258 + hoveredIndex = index;
  259 +
  260 + seniorHoverTime = setTimeout(function() {
  261 + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').addClass('hide');
  262 + $this.removeClass('hover');
  263 + hoveredIndex = -1;
  264 + }, 100);
248 }); 265 });
249 266
250 //【高级选项】多选 267 //【高级选项】多选
251 $('.senior-sub').on('click', '.multi-select', function() { 268 $('.senior-sub').on('click', '.multi-select', function() {
252 - $(this).closest('.sub').addClass('multi'); 269 + $(this).closest('.senior-sub').addClass('multi');
253 }).on('click', '.multi-select-ok', function() { 270 }).on('click', '.multi-select-ok', function() {
254 var $btn = $(this), 271 var $btn = $(this),
255 $sub = $btn.closest('.senior-sub'), 272 $sub = $btn.closest('.senior-sub'),
@@ -266,4 +283,10 @@ $('.senior-sub').on('click', '.multi-select', function() { @@ -266,4 +283,10 @@ $('.senior-sub').on('click', '.multi-select', function() {
266 }); 283 });
267 284
268 uriLoc($sub.data('attr'), val); 285 uriLoc($sub.data('attr'), val);
  286 +}).on('mouseenter', function() {
  287 + clearTimeout(seniorHoverTime);
  288 +}).on('mouseleave', function() {
  289 + $seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide');
  290 + $seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover');
  291 + hoveredIndex = -1;
269 }); 292 });
@@ -218,18 +218,27 @@ @@ -218,18 +218,27 @@
218 margin-bottom: -6px; 218 margin-bottom: -6px;
219 margin-right: 5px; 219 margin-right: 5px;
220 } 220 }
221 -  
222 - .senior-attr-wrap > .attr { 221 +
  222 + .senior {
  223 + padding-bottom: 6px;
  224 +
  225 + .attr-content {
  226 + position: relative;
  227 + }
  228 + }
  229 +
  230 + .senior-attr-wrap {
223 position: relative; 231 position: relative;
224 -  
225 - &:hover {  
226 - > .iconfont {  
227 - visibility: hidden;  
228 - } 232 + }
229 233
230 - .senior-up-icon {  
231 - display: block;  
232 - } 234 + .senior-attr-wrap > .attr:hover,
  235 + .senior-attr-wrap > .attr.hover {
  236 + > .iconfont {
  237 + visibility: hidden;
  238 + }
  239 +
  240 + .senior-up-icon {
  241 + visibility: visible;
233 } 242 }
234 } 243 }
235 244
@@ -238,7 +247,7 @@ @@ -238,7 +247,7 @@
238 position: absolute; 247 position: absolute;
239 padding: 15px 0; 248 padding: 15px 0;
240 left: 0; 249 left: 0;
241 - width: 1050px; 250 + right: 0;
242 top: 39px; 251 top: 39px;
243 background: #fff; 252 background: #fff;
244 border: 1px solid #eaeceb; 253 border: 1px solid #eaeceb;
@@ -259,15 +268,14 @@ @@ -259,15 +268,14 @@
259 } 268 }
260 269
261 .senior-up-icon { 270 .senior-up-icon {
262 - position: absolute;  
263 - width: 15px; 271 + width: 100%;
264 height: 9px; 272 height: 9px;
265 z-index: 1; 273 z-index: 1;
266 - left: 50%;  
267 - margin-left: -18px;  
268 - display: none; 274 + margin-left: -11px;
  275 + visibility: hidden;
269 276
270 background: image-url('product/senior-up.png') no-repeat; 277 background: image-url('product/senior-up.png') no-repeat;
  278 + background-position-x: 50%;
271 } 279 }
272 280
273 .checkbox { 281 .checkbox {