我想将onclick属性添加到来自某些json的输入中。 json正在由数据表处理,但我觉得我缺乏理解与jquery而不是数据表有关。
来自json的未改变形式的输入是:
<input type="checkbox" name="unique-string-submit_payment" id="id_unique-string-submit_payment" />
我希望将输入更改为:
<input type="checkbox" name="unique-string-submit_payment" id="id_unique-string-submit_payment" onclick="performFunction('some info')" />
如果我更改后端代码以包含onclick,它可以完美地工作。但是,如果我尝试通过jquery更改输入,则在页面加载时“单击”该函数。以下是我尝试的一些事情:
$('#data-display tbody tr td input').on('click', performFunction('some info'));
$('#data-display tbody tr td input').attr('onclick', performFunction('some info'));
$('#data-display tbody tr td input').each(function(){
$(this).attr('onclick', performFunction('some info'));
});
我在这里缺少什么?是不应该设置等待触发器的点击,而不是触发它?添加onclick实际上是一种触发事件的方法吗?
我可以修改后端,所以解决这个问题并不重要,但我知道我错过了什么。
答案 0 :(得分:1)
简单!
$('#data-display tbody tr td input').on('click', performFunction('some info'));
$('#data-display tbody tr td input').attr('onclick', performFunction('some info'));
on和attr正在等待函数引用,但是,这样做,你现在正在调用performFunction。
如果您想解决问题,请用以下代码替换您的代码:
$('#data-display tbody tr td input').on('click', function() { performFunction('some info') });
$('#data-display tbody tr td input').attr('onclick', function() { performFunction('some info') });