我正在使用一个jQuery Datatable,其中一列是一个复选框。因此,在选择它时,更改事件不会触发。这是我的代码...
image
-----------------数据表列-------------------
$("#divAddDocument").on("change", $("input[id*='addDocCheckbox_']"), function (e) {
var checkboxId = e.target.id;
var _index = checkboxId.substring(checkboxId.lastIndexOf('_') + 1, checkboxId.length);
_docUpload.DmsDocumentsList[_index].IsGridItemSelected = true;
if (_docUpload.IsCorrespondence) {
$("input[id*='addDocCheckbox_']").each(function () {
if (checkboxId != $(this).id) {
$(this).prop("disabled", true);
$(this).prop("checked", false);
var _counter = $(this).id.substring($(this).id.lastIndexOf('_') + 1, $(this).id.length);
_docUpload.DmsDocumentsList[_counter].IsGridItemSelected = false;
}
});
}
});
感谢您的帮助。
答案 0 :(得分:0)
主要问题是您需要在委托事件处理程序中提供一个字符串作为import React, { Component } from "react";
import Titles from "./components/Titles.js";
export class App extends Component {
render() {
return (
<div>
<Titles />
</div>
);
}
}
export default App;
的第二个参数,而不是您当前使用的jQuery对象。后者不起作用,因为在您尝试选择DOM时该元素不存在于DOM中,因此jQuery对象为空。这是固定版本:
on()
另一个问题是重复使用$("#divAddDocument").on("change", "input[id*='addDocCheckbox_']", function(e) {
// your code...
});
。 $(this).id
不是jQuery对象的属性,因此它将始终返回id
。
要解决此问题,请使用Element本身的undefined
属性:
id
或使用this.id
方法通过jQuery获取属性:
prop()
这是您逻辑的完整更新版本:
$(this).prop('id')