0
我在我的WP主題中使用了下拉菜單,並使用了選擇框。在一些jQuery的幫助下,當選擇一個新的選擇選項時,頁面會改變。但是,當新頁面呈現時,選擇菜單中的默認選項仍然是「起始頁面」(第一個)。根據頁面(菜單)更改選定的下拉選項
我能做些什麼來改變當前頁面?
的header.php:
<div id="navigation" role="navigation">
wp_nav_menu(array(
'container' => false,
'menu_id' => 'nav',
'theme_location' => 'primary', // your theme location here
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<select>%3$s</select>',
'fallback_cb' => 'bp_dtheme_main_nav'
));
class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{
function start_lvl(&$output, $depth){
$indent = str_repeat("\t", $depth);
}
function end_lvl(&$output, $depth){
$indent = str_repeat("\t", $depth);
}
function start_el(&$output, $item, $depth, $args){
$item->title = str_repeat(" - ", $depth).$item->title;
parent::start_el($output, $item, $depth, $args);
$href =! empty($item->url) ? ' value="' . esc_attr($item->url) .'"' : '#';
$output = str_replace('<li', '<option '.$href, $output);
}
function end_el(&$output, $item, $depth){
$output .= "</option>\n"; // replace closing </li> with the option tag
}
} ?>
</div>
的jQuery:
$("#navigation select").on('change', function() {
window.location = jq(this).find("option:selected").val();
});
謝謝!它工作,如果我改變===爲==。顯然,這個值和url在某種程度上稍有不同(即使他們在console.logging時看起來完全一樣) – holyredbeard 2013-03-05 14:58:44
@holyredbeard對不起,'window.location'是一個對象。而不是使用'$(this).val()== window.location'並強制類型,使用'$(this).val()=== window.location.toString()'。我會編輯我的答案來反映這一點。 – 2013-03-06 11:45:15