定制器:在数字输入字段中输入时立即更新预览

时间:2015-01-12 作者:user3159159

我正在为我的主题进行一些自定义设置。Im使用chrome。我创建了一个数字输入字段:

$wp_customize->add_setting( \'st_opacity\',
   array(
      \'default\' => \'100\',
      \'type\' => \'theme_mod\',
      \'capability\' => \'edit_theme_options\',
      \'transport\' => \'postMessage\',
   ) 
);      
$wp_customize->add_control( new WP_Customize_Control(
   $wp_customize,
   \'st_opacity\',
   array(
      \'label\' => \'Opacity (%)\',
      \'section\' => \'sitetitle_options\',
      \'settings\' => \'st_opacity\',
      \'type\' => \'number\',
      \'input_attrs\' => array(\'min\' => \'0\', \'max\' => \'100\'),
      \'priority\' => 41,
   )
) );
预览会在两种情况下更新:-当我在选择数字字段时使用箭头键时。-当我在数字字段中键入,然后在其外部单击时。

我想在我刚输入数字字段时更新预览。我该怎么做?

当我使用普通文本输入时,它会立即更新预览。但对于数字输入,其工作方式不同。

2 个回复
SO网友:user3159159

这对我很有用:

jQuery(document).ready(function(){
    setTimeout(function() {
        jQuery(\'input[type="number"]\', window.parent.document).on(\'keyup\', function(){
           window.parent.jQuery(this, window.parent.document).trigger(\'change\'); 
        });
    }, 0);
});
使用customize_preview_init 将此js排队。

SO网友:Weston Ruter

此行为的原因是由于wp.customize.Element 没有更新以了解HTML5输入类型,尽管更深层的原因是它需要倾听input 事件,而不是当前决定是否使用change, keydown 或其他事件处理程序。现在应该更新所有内容以使用input 只是因为这是标准的,我们不必再担心IE的不兼容性了。看见#35832. 长话短说,这应该很快在WordPress的小版本中修复。

结束

相关推荐