0

私の問題は、JavaScriptメニューを作成しようとしていますが、スクリプトの読み込みが非常に遅くて遅いように見えるため、最初の数秒間は機能しません。私が間違っている場合は私を訂正してください。第二に、私は各列をうまく機能させることができず、同じページにリンクしているだけの場合もあります。どのオプションを選択しても、選択したことに反応がないという別の問題が発生します。メニューから本当に何かを選んだとしても、何でも。

何が問題になるか知っていますか?JavaScriptでそれを行うのは悪い考えですか?PHPで作成しますか?また、コードが長すぎるかもしれません。

これは私の問題の例です-リンク

<div class="quick_width">
      <div class="quick_links"><img src="http://www.101greatgoals.com/wp-content/themes/tutorial/images/quick_links.jpg" width="102" height="37" alt=" "></div>
      <div class="green_bg">
        <div class="option_width">
          <div class="form_row_name_input1">
          <ul class="dropdownul">
<li id="categories">

<?php wp_dropdown_categories('show_option_none=Country'); ?>


<script type="text/javascript"><!--

var dropdown = document.getElementById("cat");

function onCatChange() {

if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {

location.href = "<?php echo get_option('home');

?>/category/goals/"+dropdown.options[dropdown.selectedIndex].text.split(' ').join('-');

}

}

dropdown.onchange = onCatChange;

--></script>

</li>
</ul>
          </div>
          <div class="form_row_name_input1">
          <ul class="dropdownul">
<li id="categories">

<?php wp_dropdown_categories('taxonomy=teams&show_option_none=Teams&name=teamsmenu'); ?>


<script type="text/javascript"><!--

var dropdown = document.getElementById("teamsmenu");

function onCatChange() {

if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {

location.href = "<?php echo get_option('home');

?>/?teams="+dropdown.options[dropdown.selectedIndex].text.split(' ').join('-');

}

}

dropdown.onchange = onCatChange;

--></script>

</li>
</ul>
          </div>

          <div class="form_row_name_input1">
          <ul class="dropdownul">
<li id="categories">

<?php wp_dropdown_categories('taxonomy=players&show_option_none=Players&name=playersmenu'); ?>


<script type="text/javascript"><!--

var dropdown = document.getElementById("playersmenu");

function onCatChange() {

if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {

location.href = "<?php echo get_option('home');

?>/?players="+dropdown.options[dropdown.selectedIndex].text.split(' ').join('-');

}

}

dropdown.onchange = onCatChange;

--></script>

</li>
</ul>
          </div>

          <div class="form_row_name_input1">
          <ul class="dropdownul">
<li id="categories">

<?php wp_dropdown_categories('taxonomy=managers&show_option_none=Managers&name=managersmenu'); ?>


<script type="text/javascript"><!--

var dropdown = document.getElementById("managersmenu");

function onCatChange() {

if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {

location.href = "<?php echo get_option('home');

?>/?managers="+dropdown.options[dropdown.selectedIndex].text.split(' ').join('-');

}

}

dropdown.onchange = onCatChange;

--></script>

</li>
</ul>
          </div>

          <div class="form_row_name_input1">
          <ul class="dropdownul">
<li id="categories">

<?php wp_dropdown_categories('taxonomy=clean_feeds&show_option_none=Other&name=othermenu'); ?>


<script type="text/javascript"><!--

var dropdown = document.getElementById("othermenu");

function onCatChange() {

if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {

location.href = "<?php echo get_option('home');

?>/?clean_feeds="+dropdown.options[dropdown.selectedIndex].text.split(' ').join('-');

}

}

dropdown.onchange = onCatChange;

--></script>

</li>
</ul>
          </div>



        </div>
      </div>
      <div class="right_align"></div>
    </div>
4

1 に答える 1

0

この場合、事前に PHP を使用して HTML 出力を作成することを強くお勧めします。このようにして、ページが読み込まれたときに、メニュー スクリプトをトリガーできます。

wp_dropdown_categories()関数の WordPress リファレンスで提供されている例には、途中で役立つクールな例があります。基本的に、生成された HTML の特定の部分を置き換えます。あなたの場合のこれらの置換は、主に生成された URL にあります。明確にするためにここに再現された例:

<li id="categories">
    <h2><?php _e('Posts by Category'); ?></h2>
    <form action="<?php bloginfo('url'); ?>/" method="get">
    <div>
    <?php
        $select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');
        $select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
        echo $select;
    ?>
    <noscript><div><input type="submit" value="View" /></div></noscript>
    </div></form>
</li>
于 2012-09-01T10:58:42.607 に答える