奇怪的JavaScript类型转换
Weird JavaScript type casting
本文关键字:类型转换 JavaScript 更新时间:2023-09-26
我正在显示特定实体的反馈和评级,该实体最初显示为选项卡。当用户单击选项卡时,我使用
$.get()
$.get()
的回归是这样的
some arbit html|||8
我使用|||
拆分这些数据,并得到在这种情况下为 8 的评级。
$.get('prevfeed.php',{text:text},function(data){
data = data.split("|||");
$('#prevFeedback').html(data[0]);
$('body').data( 'rating', parseInt(data[1]));
alert(parseInt(data[1])+1);
});
问题就在这里。我正在使用这个插件来显示星级。以下是初始化代码
$('#star').raty({
readOnly: true,
number : 10,
start: $('body').data( 'rating')
});
无论我做什么 评级不起作用。如果我输入一个数字而不是$('body').data( 'rating')
,它工作正常。
最初,我尝试使用 $('body').data( 'rating')
设置隐藏输入字段的值,然后从输入字段的 val 分配 start 。但这没有用。
提前致谢
PS:看到答案,我编辑了我的代码
$('#star').raty({
readOnly: true,
number: 10,
start: function() { alert($('body').data('rating'););return $('body').data('rating'); }
当我包含警报时,它正在工作。所以就像我只需要解播放这段代码。如何做到这一点。 });
这是因为在body
上设置 rating
属性的代码会延迟到 AJAX 调用完成。
但是,您将在页面加载时启动raty
插件;其中rating
数据属性仍undefined
。
您必须延迟插件的初始化,直到 AJAX 调用完成:
$.get('prevfeed.php', {
text: text
}, function(data) {
data = data.split("|||");
$('#prevFeedback').html(data[0]);
$('body').data('rating', parseInt(data[1]));
$('#star').raty({
readOnly: true,
number: 10,
start: $('body').data('rating')
});
});
Matt给出的解决方案应该有效。另一种解决方案可以是,单击选项卡时,您正在从prevfeed获取数据.php并尝试相应地设置评级。
您可以改为尝试此操作。
单击选项卡时:
$("#star").raty ( {
readonly: true,
number: 10,
start: function (){
//get the rating now,
$.get('prevfeed.php',{text:text},function(data){
data = data.split("|||");
$('#prevFeedback').html(data[0]);
$('body').data( 'rating', parseInt(data[1]));
});
//Now you got the rating, just return it
return $('body').data('rating');
}
}
);
附言我还没有尝试过,但它应该可以;)
相关文章:
- 弱类型语言类型转换的意思在哪里,为什么使用.例如JavaScript
- JavaScript 中的显式类型转换和类型
- Javascript类型转换悖论
- 将嵌套的 c# 类型转换为 json,并在 javascript 中使用它
- Dojo Dnd 问题:使用 JavaScript 通过 Dnd 项类型转换为 JSON
- 奇怪的JavaScript类型转换
- JavaScript 的 (0 == “”) === true 如何与 ECMA-262 类型转换规则一致
- JavaScript 括号将基元类型转换为对象
- Javascript/google闭包库中的类型转换
- 是否可以像在Javascript对象中那样将整数值存储在localStorage中,并在不进行类型转换的情况下提取它
- 将JSON转换为X类型的JavaScript对象
- javascript中带有无符号32位整数的位移位/类型转换
- Javascript中的类型转换
- Javascript类型转换
- JavaScript智能感知类型转换
- JavaScript 类型转换:(true && 1) vs (true | | 1).例如,
- Java到JavaScript类型转换算法
- 在Javascript中添加和减去字符串和数字-自动类型转换
- 类型转换- Javascript -转换字节到字节
- 类型转换-JavaScript-为什么使用+!{}[0]==1