【问题标题】:Want to add onclick attr but not trigger click想要添加 onclick attr 但不触发点击
【发布时间】:2014-09-27 09:00:36
【问题描述】:

我想为来自某个 JSON 的输入添加 onclick 属性。 JSON正在由数据表处理,但我觉得我的理解不足与jQuery有关,而不是数据表。

来自 JSON 的未更改形式的输入是:

我希望将输入更改为:

如果我更改后端代码以包含 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 的属性实际上是一种触发事件的方式吗?

我可以修改后端,所以解决这个问题并不重要,但我知道我错过了一些东西。

【问题讨论】:

    标签: jquery onclick click jquery-events


    【解决方案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') });
    

    【讨论】:

    • 谢谢,我想我在 jquery 中经常遇到这个基本错误。也许它现在会坚持下去:)
    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多