0

URL に基づいて、順序付けられていないリストに追加したいと考えています。したがって、mysite.com/es/instructions にいる場合は、順不同リストの先頭に「選択」を追加し、mysite.com/instructions にいる場合は、順不同リストの先頭に「選択」を追加します。

これが私が始めたもので、うまくいきます:

$("ul.gallery").prepend('<li class="gallery-item"><a href="#">Select</a></li>'); 

URLに基​​づいて追加しようとする場所は次のとおりです。

$(function(){
var url = location.pathname;
if(url.indexOf('es') > -1){
    $("ul.gallery").prepend('<li class="gallery-item"><a href="#">Selecctioner</a></li>');
 } 
 else if (url.indexOf('') > -1) { 
   $("ul.gallery").prepend('<li class="gallery-item"><a href="#">Select</a></li>'); 
 }  
});

これが機能しない理由についての考え。prepend ステートメントの代わりにアラートを入れて、それが機能するかどうかを確認しました。

HTMLは次のとおりです。

<ul id="gallery-1" class="gallery list columns_3 ">
 <li class="gallery-item"> <a href="/instructions_en.pdf" title="English" class="gallery-icon"> English </a></li>
 <li class="gallery-item"> <a href="/instructions_en.pdf" title="French" class="gallery-icon"> Spanish </a></li>
 <li class="gallery-item gallery-endcol"> <a href="/instructions_en.pdf" title="German" class="gallery-icon"> German </a></li>
</ul>

想定されるのは、jquery スクリプトが、対象の URL に応じて「Select」または「Selectioner」をリストの先頭に追加することです。

4

2 に答える 2

0

わかりました、元のスクリプトは機能しています。問題は、その上にリストをドロップダウン ボックスに変換するスクリプトがあったことです。最後に実行されるように、そのコードを最後に移動する必要がありました。できます。参考までに、最後に移動する必要があるドロップダウンに変更するコードを次に示します。

$(document).ready(function(){

var $listItems = $('.gallery li');
var $select = $("<select id='new-menu'>");

$.each($listItems, function(idx,obj){
  var $option = $("<option>"+ $(obj).text() +"</option>").val( $(obj).find('a').attr('href') );
  if ( $(obj).hasClass('active') ){
    $option.attr('selected', 'selected');
  }
  $select.append($option);
})

$('.gallery').after($select);
$('.gallery').remove();

// Go to page on select.

$('#new-menu').change(function(){
  var selected = $(this).find('option:selected');
  //alert('Going to: '+ selected.val());
  window.location.href = selected.val();
});


});
于 2012-10-18T14:04:44.553 に答える
0

このアプローチはどうですか:

$(function() {
    $('ul.gallery').prepend(function() {
        return ~location.pathname.indexOf('/es')
            ? '<li class="gallery-item"><a href="#">Selecctioner</a></li>'
            : '<li class="gallery-item"><a href="#">Select</a></li>';
    })
});​
于 2012-10-17T20:24:21.827 に答える