2017-06-13 47 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(); 
      } 
    }); 

});