2017-06-13 34 views
0

我正在Wordpress網站上工作。它安裝了Buddypress,通過名爲「Buddypress個人資料搜索」的小部件添加了側欄上的個人資料搜索。jQuery腳本不影響我的元素WordPress

我試圖根據其他下拉值顯示不同的選擇下拉菜單。我可以讓代碼在Jsfiddle.net上正常工作。但是當我嘗試將其添加到我的文件時,它根本不會影響我的元素。我試圖加載腳本多次和多個地方,但它只是不會工作。

我的HTML:

<select name="field_11" id="field_11"> 
<option value=""></option> 
<option value="Counter Strike : Global Offensive">Counter Strike : Global Offensive</option> 
<option value="Diablo 3">Diablo 3</option> 
<option value="League of Legends">League of Legends</option> 
<option value="World of Warcraft">World of Warcraft</option> 
<option value="Overwatch">Overwatch</option> 
</select> 

<select name="field_118" id="field_118"> 
<option value=""></option> 
<option value="Casual">Casual</option> 
<option value="Mediocre">Mediocre</option> 
<option value="Hardcore">Hardcore</option> 
<option value="Ready for Esports">Ready for Esports</option> 
</select> 

我的jQuery

jQuery(function($){ 
jQuery("#field_118").hide(); 
    jQuery("#field_11").change(function() { 
     if (jQuery(this).val() == "Diablo 3") { 
      jQuery("#field_118").show(); 
     } else { 
      jQuery("#field_118").hide(); 
     } 
    }); 
}); 

爲什麼我不能得到這個在WordPress的側邊欄工作?

+0

你把你的文件放到了functions.php中嗎?你在哪裏添加了這個代碼?你有沒有嘗試直接添加到sidebar.php?這是行不通的 - 你必須將這個腳本包含在functions.php中,然後將jquery指定爲依賴項,或者你需要在get_footer之後將它添加到你的footer.php文件中,儘管這不是推薦的方法... – Radmation

+0

@Radmation是的,我沒有像這樣添加它: wp_register_script('dropdown-remove',get_template_directory_uri()。'/assets/js/dropdown-remove.js',array('jquery'),KLEO_THEME_VERSION,true); 仍然不會對我的html元素做任何事情。 –

+1

@Radmation我也試過這樣做: wp_enqueue_script('dropdown-remove',get_template_directory_uri()。'/ assets/js/dropdown-remove.js',array('jquery'),null,true) ; 「有點」似乎工作。但它只執行.hide();在jQuery中。它只是隱藏我的元素,但「顯示/隱藏」功能仍然無法正常工作。 –

回答

0

試試看看這個代碼。

jQuery(function($){ 
    jQuery("#field_118").hide(); 

    jQuery(document).on("change","#field_11",function() {   
      if (jQuery(this).val() == "Diablo 3") { 
       jQuery("#field_118").show(); 
      } else { 
       jQuery("#field_118").hide(); 
      } 
    }); 

});