fSelect学习使用记录

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
	<title></title>
	<script src="./select-multiple.js"></script>
</head>
<body>
	<select name="fs_box" id="fs_box">
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
	</select>

	<script>
		/*调用插件*/
		$('#fs_box').fSelect();

		/*取值*/
		$('#fs_box').val();  // 是一个数组

		/*设置默认值*/
		var arr = [1, 2, 3, 4];
		arr = arr.split(',');
		// 第一步,先给select标签赋值
		$('#fs_box').val(arr);
		// 第二步,给fs-option 添加selected样式
		$('.fs-option').each( function() {
			var v = $(this)['context']['dataset']['value'];
			if( arr.indexOf(v) != -1 ) {
				$(this).addClass('selected');
			}
		})
		// 第三步,重新加载,使添加了selected样式的option处于选中
		$('#fs_box').fSelect('reloadDropdownLabel');
	</script>
</body>
</html>

默认的点击空白处会关闭或者esc关闭,如果想要只点击确定按钮才关闭

可以把select-multiple.js中对于这方面的addclass注释

取消esc关闭

关闭空白处关闭

如果你还有更好的方法或者使用心得,可以分享给我,一起共勉

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
非常感谢您的提问!以下是一个简单的C语言AD9832驱动的示例代码,函数命名使用了驼峰命名法: ```c #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <stdbool.h> // AD9832寄存器地址 #define AD9832_REG_FREQ0 0x4000 #define AD9832_REG_FREQ1 0x8000 #define AD9832_REG_PHASE0 0xC000 #define AD9832_REG_PHASE1 0xE000 #define AD9832_REG_CONTROL 0x2000 // AD9832控制寄存器位定义 #define AD9832_CTRL_B28 13 #define AD9832_CTRL_HLB 12 #define AD9832_CTRL_FSELECT 11 #define AD9832_CTRL_PSELECT 10 #define AD9832_CTRL_RESET 8 #define AD9832_CTRL_SLEEP1 7 #define AD9832_CTRL_SLEEP12 6 #define AD9832_CTRL_OPBITEN 5 #define AD9832_CTRL_DIV2 3 #define AD9832_CTRL_MODE 1 // AD9832控制寄存器值定义 #define AD9832_CTRL_RESET_VAL (1 << AD9832_CTRL_RESET) #define AD9832_CTRL_B28_VAL (1 << AD9832_CTRL_B28) #define AD9832_CTRL_HLB_VAL (1 << AD9832_CTRL_HLB) #define AD9832_CTRL_FSELECT_VAL (1 << AD9832_CTRL_FSELECT) #define AD9832_CTRL_PSELECT_VAL (1 << AD9832_CTRL_PSELECT) #define AD9832_CTRL_OPBITEN_VAL (1 << AD9832_CTRL_OPBITEN) #define AD9832_CTRL_DIV2_VAL (1 << AD9832_CTRL_DIV2) #define AD9832_CTRL_MODE_VAL (1 << AD9832_CTRL_MODE) // AD9832时钟频率 #define AD9832_CLK_FREQ 25000000 // AD9832频率寄存器值计算宏定义 #define AD9832_FREQ_REG_VAL(freq) ((uint32_t)((freq) * (1 << 28) / AD9832_CLK_FREQ)) #define AD9832_PHASE_REG_VAL(phase) ((uint16_t)((phase) * (1 << 12) / 360.0)) // AD9832驱动结构体定义 typedef struct { uint32_t freq; // 频率 uint16_t phase; // 相位 bool enable; // 使能 } ad9832_t; // AD9832初始化函数 void ad9832_init(void) { // 初始化SPI接口 // ... // 复位AD9832 uint16_t ctrl_reg = AD9832_CTRL_RESET_VAL; // 写入控制寄存器 // ... } // AD9832设置频率函数 void ad9832_set_freq(ad9832_t *ad, uint32_t freq) { ad->freq = freq; uint32_t freq_reg_val = AD9832_FREQ_REG_VAL(freq); // 写入频率寄存器0 // ... // 写入频率寄存器1 // ... } // AD9832设置相位函数 void ad9832_set_phase(ad9832_t *ad, uint16_t phase) { ad->phase = phase; uint16_t phase_reg_val = AD9832_PHASE_REG_VAL(phase); // 写入相位寄存器0 // ... // 写入相位寄存器1 // ... } // AD9832使能函数 void ad9832_enable(ad9832_t *ad, bool enable) { ad->enable = enable; uint16_t ctrl_reg = 0; if (enable) { ctrl_reg |= AD9832_CTRL_B28_VAL; ctrl_reg |= AD9832_CTRL_FSELECT_VAL; ctrl_reg |= AD9832_CTRL_PSELECT_VAL; ctrl_reg |= AD9832_CTRL_OPBITEN_VAL; ctrl_reg |= AD9832_CTRL_MODE_VAL; } // 写入控制寄存器 // ... } ``` 希望这个示例代码能够帮助您完成AD9832的驱动开发!如果您有任何问题或需要进一步的帮助,请随时联系我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值