jquery - 如何将值存储在可验证的变量中并获取更改函数的值?
问题描述
我有一个存储不同值的变量列表,我正在使用这些变量来检查多个更改函数,目前,每次我想检查更改时都必须声明变量。我怎样才能声明它们一次,然后在多个更改函数上访问它们的值。
jQuery('#fontWeight').on('change', function() {
var getFontweight = jQuery('#fontWeight').val();
jQuery(".preview").css('font-weight', getFontweight);
});
jQuery('#fontTransform').on('change', function() {
var getFonttransform = jQuery('#fontTransform').val();
jQuery(".preview").css('text-transform', getFonttransform);
});
jQuery('#fontWeight, #fontTransform').on('change', function() {
var getFontweight = jQuery('#fontWeight').val();
var getFonttransform = jQuery('#fontTransform').val();
document.getElementById('g-code').innerHTML =
'#text{\n'+
' font-weight: '+getFontweight+';\n'+
' text-transform: '+getFonttransform+';\n'+
'}';
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="font-weight" id="fontWeight">
<option value="normal">Normal</option>
<option value="bold">Bold</option>
</select>
<select class="font-transform" id="fontTransform">
<option value="none">Normal</option>
<option value="uppercase">Uppercase</option>
<option value="lowercase">Lowercase</option>
</select>
<div class="preview">Grumpy wizards make toxic brew for the evil Queen and Jack. </div>
<textarea id="g-code" onFocus="this.select()" onClick="this.focus();this.select()" readonly='readonly'></textarea>
解决方案
这个问题没有实际意义,因为您不需要多个change
事件处理程序。将它们合二为一:
jQuery(function($) {
$('#fontWeight, #fontTransform').on('change', function() {
var fontWeight = $('#fontWeight').val();
var fontTransform = $('#fontTransform').val();
$(".preview").css({
'font-weight': fontWeight,
'text-transform': fontTransform
});
$('#g-code').html(`#text {\n font-weight: ${fontWeight};\n text-transform: ${fontTransform};\n}`);
}).trigger('change');
$('#g-code').on('focus click', e => e.target.select());
});
textarea {
width: 400px;
height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="font-weight" id="fontWeight">
<option value="normal">Normal</option>
<option value="bold">Bold</option>
</select>
<select class="font-transform" id="fontTransform">
<option value="none">Normal</option>
<option value="uppercase">Uppercase</option>
<option value="lowercase">Lowercase</option>
</select>
<div class="preview">Grumpy wizards make toxic brew for the evil Queen and Jack. </div>
<textarea id="g-code" readonly="true"></textarea>
推荐阅读
- react-native - 使用 loopBack 的两个自定义方法/端点,一个有效,另一个给出 401
- c++ - 为什么 GetProcAddress 不能与 OutputDebugString 函数一起使用
- javascript - 鼠标移动指针事件无 div
- c - 关于函数指针的声明
- c - 如何静态断言浮点是 C 中的 IEEE-754?
- java - 从eclipse动态部署Tomcat上的项目
- swift - 如何在一个 CollectionViewController 中查看我的所有聊天室?
- maven - 文档的生成应该在父模块还是模块中完成?
- android - 动态布尔表达式变量和布尔函数的区别
- razor - 剃刀中的文本框宽度