我正在尝试找到一种方法来重用从事件绑定中触发的函数。
此问题是由浏览器记住复选框状态引起的,因此我必须在文档就绪时触发该功能。
我知道我可以将setGrid()
放在一个匿名函数中并传入元素,但这样就很难解除特定事件的绑定。
HTML:
<input type="checkbox" value="grid" id="checkbox-grid">
使用Javascript:
function setGrid(e) {
var $this = $(e.target); // "error: e is undefined" on situation 2
if( $this.is(':checked') ){
// do something if checkbox is checked
}
else{
// do something if checkbox isn't
}
}
// 1. event binding
$('#checkbox-grid').on('change', setGrid);
// 2. function fired on page ready
setGrid();
答案 0 :(得分:2)
您可以使用您拥有的第一个解决方案。由于您正在使用jQuery,因此很容易触发该函数,您只需触发它与之关联的事件即可。所以:
$('#checkbox-grid').on('change', setGrid); // to set it up; then
$('#checkbox-grid').trigger("change"); // fires the change event of the
// checkbox, so fires the function.
您可以对任何事件执行此操作,只需将change
替换为该事件即可。但是,由于某种原因您可能会使用change
,因此最好不要这样做。
希望这有帮助。