[英]XOR value in JQuery script
我有一个小脚本,需要一个值进行异或。 有人指出了操作方法,但此后我更改了脚本,他的建议在这里不再适用。
<input type='button' value='Ein / Aus' class='taster' csv='Lampe' />
<script>
$(document).on('click', 'input.taster', function() {
// Get ID from Input
var id = $(this).attr('csv');
$.get('plc.php?function=csv&id=' + id, function(data){
var csv = data.split(',');
//Output
var out = csv[1];
//Write
var wdatatyp = csv[2];
var wdb = csv[3];
var wbyte = csv[4];
var wbit = csv[5];
var bitval = csv[6];
//Read
var rdatatyp = csv[7];
var rdb = csv[8];
var rbyte = csv[9];
var rbit = csv[10];
$(document).load('plc.php?function=write-bit', {'wdatatype':wdatatyp, 'wdb':wdb, 'wbyte':wbyte, 'wbit':wbit, 'bitval':bitval});
function read() {
$(out).load('plc.php?function=read-bit', {'rdatatype':rdatatyp, 'rdb':rdb, 'rbyte':rbyte, 'rbit':rbit});
}
setTimeout(read, 100);
});
});
</script>
进行一些清理并更好地描述需要发生的情况。
从csv文件中提取了csv [6],并将始终返回1。
所以我需要的是第一次调用该脚本,bitval需要返回1。下次需要返回0,然后是1,然后是0,依此类推。
您需要bitval
转换为int
然后再对其进行XOR。 所以更换线
var bitval = csv[6];
同
var bitval = parseInt(csv[6]);
然后可以通过以下方式进行切换(通过将bitval声明移出onClick处理程序):
var bitval = null; // this is crucial since you don't have another place to store the value
$(document).on('click', 'input.taster', function() {
var id = $(this).attr('csv');
$.get('plc.php?function=csv&id=' + id, function(data){
// your variables
if (bitval == null) { // initial set
bitval = parseInt(csv[6]); // was 'var bitval = csv[6]'
}
// your load code
bitval ^= 1; // toggle
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.