如果点击下拉菜单,如何使用jQuery隐藏/显示元框

时间:2017-11-10 作者:DeanTwit

我是jQuery的新手,尝试使用jQuery向管理员(新帖子)动态添加文本字段。

例如,仅当我从下拉选择菜单中单击“其他”时,文本字段才可见。这是我的“尝试”:

jQuery:

 jQuery(document).ready( function() {
  jQuery(\'#prefix-nums\').bind(\'change\', function (e) { 
  if( jQuery(\'#prefix-nums\').val() == \'other\') {
   $(\'#prefix-text-1\').show();
    jQuery("#prefix-text-1").css({ display: "inline-block" });
  }else if( $(\'#prefix-nums\').val() == \'first\') {
  jQuery(\'#prefix-text-1\').hide();  
  }).trigger(\'change\');
  });

Functions.php

$prefix = \'prefix-\';
$meta_boxes[] = array(
    \'id\' => \'untitled\',
    \'title\' => esc_html__( \'Some nums\', \'metabox-online-generator\' ),
    \'post_types\' => array( \'post\', \'page\' ),
    \'context\' => \'advanced\',
    \'priority\' => \'high\',
    \'autosave\' => false,
    \'fields\' => array(
        array(
            \'id\' => $prefix . \'nums\',
            \'name\' => esc_html__( \'nums\', \'metabox-online-generator\' ),
            \'type\' => \'select_advanced\',
            \'placeholder\' => esc_html__( \'Select an Item\', \'metabox-online-generator\' ),
            \'options\' => array(
                \'one\' => \'one\',
                \'two\' => \'two\',
                \'three\' => \'three\',
                \'four\' => \'four\',
                \'other\' => \'other\',

            ),
            \'class\' => \'numbers\',
        ),
        array(
            \'id\' => $prefix . \'text-1\',
            \'type\' => \'text\',
            \'name\' => esc_html__( \'Other nums\', \'metabox-online-generator\'),
            \'placeholder\' => esc_html__( \'Other nums\', \'metabox-online-generator\' ),
            \'class\' => \'text-1\',
        ),
当然。。那根本不管用^^。。。。

你能帮帮我吗?提前感谢您!

谨致问候,

1 个回复
最合适的回答,由SO网友:Digvijayad 整理而成

你有一个syntax error 这意味着您键入的内容不正确。使用以下jQuery显示/隐藏元.on() 方法

此外,正如我在评论中提到的,bind 自jQuery 3.0以来已被弃用。现在建议使用.on() 方法

注意:您可以使用速记$ 而不是写作jQuery 每一次。

jQuery(document).ready(function( $ ){
 $(\'#prefix-nums\').on(\'change\', function(e) {

   if ($(this).val() == \'other\') {
     $(\'#prefix-text-1\').show();
     $("#prefix-text-1").css({
       display: "inline-block"
     });
   } else if ($(this).val() == \'first\') {
     $(\'#prefix-text-1\').hide();
   }

  });
});
这是一个工作jsfiddle:

这是一个不错的免费jQuery 大约需要3小时的课程

结束

相关推荐

生成的自定义Metabox的PHP输出

我使用WordPress Meta Box Generator v2 Beta网站生成了一个自定义的Meta Box,将自定义图像文件上传到自定义帖子中,在管理端,一切似乎都很好,但我不知道如何在前端进行输出。所以我尝试了<?php echo get_post_meta( get_the_id(), \'project_logo_logo-image\', true ); ?> 但似乎什么都不起作用,也没有任何产出。请你给我指一下正确的方向好吗? class Rational_Meta_