我有一个存储不同值的变量列表,我正在使用这些变量来检查多个更改功能,当前,每次我要检查更改时都必须声明该变量。如何声明一次,然后在多个变更函数中访问它们的值。
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>
答案 0 :(得分:1)
问题是没有解决的,因为您不需要多个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>