我试图改变值的div时,数据属性的另一个div将改变。我正在努力
$('.language-rate').attr("data-rate-value").on('change', function () {
$('.language-d').text($('.language-rate').attr("data-rate-value"));
});
但它登录到控制台:
未捕获的类型错误:无法读取未定义的属性“on”
我该怎么做?
我的看法是:
@using (Ajax.BeginForm("LanguagesTable", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "languages"
}))
{
<div class="language-content">
@Html.TextBoxFor(m => m.newLanguages.LanguageName, new { @class = "pcontent-left main-color" })
<div class="rate language-rate"></div>
@Html.HiddenFor(m => m.newLanguages.Star, new { @class = "language-d" })
</div>
<div class="add-education">
<button type="submit" name="pcprograms" value="add" class="add-education-button-sm">add</button>
</div>
}
我使用的是rater js,当星星率发生变化时,我想检测并传递到我的模型中(这是隐藏的表单控件)
编辑
我正在做:
$('.language-rate').on('change', function () {
$('.language-d').text($('.language-rate').attr("data-rate-value"));
});
但它的作品后,第二次点击div。因为我想检测属性更改事件
2条答案
按热度按时间vq8itlhq1#
不幸的是,你不能把事件挂接到数据属性上。在SO和其他资源上有很多关于这方面的文章。你可以做的是创建一个经常运行的函数(例如:每隔200毫秒),并检查div的data属性的值是否发生了变化。这里有一个例子,我希望它能帮助你:
oprakyz72#
如果您正在寻找DOM更改处理,这个问题仍然排在前面。
现在你可以使用像
MutationObserver
这样的高性能类您可以使用以下代码片段轻松地挂钩到
data-rate_value
的更改: