数据值在DOM中更新,而不是在函数中更新
Data-value updates in DOM, but not in function
根据用户的选择改变按钮的文本。
$(".someClass").click(function() {
$("#someID_1").text($(this).prop("innerHTML"));
$("#someID_1").attr("data-value", $(this).data("value"));
someFunction("someID_1");
});
然后我想调用一个函数someFunction
。
function someFunction(someID) {
console.log(parseInt($("#" + someID).data("value")))
if ( parseInt($("#" + someID).data("value")) !== 10 ) {
// do something
} else {
// do something else
}
}
发生的事情是console.log
在第一次函数调用(因此,第一次点击)时绘制选择的data-value
。然而,当我选择新的东西并再次执行函数时,通过console.log
绘制的data-value
保持不变。看看DOM
, data-value
得到了更新。
为什么?
由于.data()
使用内部缓存,它只使用使用data属性作为默认值,并且更新属性不会影响它,
需要使用.data(key, value)
来设置value。如果你需要更新DOM,那么使用.attr()
$("#someID_1").data("value", $(this).data("value"));
如果您使用attr()
获取和设置,您将获得更新的值。不应该使用的是attr()
和data()
的混合。如果没有真正的理由更新属性,那么使用data()
来获取和设置值。
Try
$(document).on('click', ".someClass", function()
{
//your event logic
}
相关文章:
- 在jQuery中:如何在用户展开窗口时更新函数
- Javascript 更新函数
- 创建 Jquery 更新函数
- 自定义绑定到可观察数组,不调用更新函数
- 无法更新函数内的变量
- 补间.js不调用更新函数
- 我在nodejs/mongodb上的更新函数上做错了什么
- 如何在nodejs/mongodb上创建一个更新函数
- Javascript 不按间隔更新函数
- 如何在 D3JS 中创建更新函数
- jQuery-使用不推荐使用的toggle()更新函数
- 使用Jquery更新函数REST
- AngularJS:实时更新函数
- Angular'控制器为'更新函数内部的属性
- 相位:调用更新函数不工作
- 在函数中更新函数参数
- AngularJs的更新函数
- 不能在angular服务中更新函数内部的值
- Javascript更新函数If和Else问题
- WP媒体库-选择不更新行索引的ID更新函数