【问题标题】:should I convert a H1 into a button to let it call a function?我应该将 H1 转换为按钮以使其调用函数吗?
【发布时间】:2019-06-25 13:56:00
【问题描述】:

我创建了一个动态网页,它基本上是一个搜索表单。 根据点击的按钮调用了几个函数,所以最终网页会填满几个文本字段。

我想添加一个函数empty() 让我清空所有文本字段并返回到初始状态(打开网页时,在单击任何按钮并调用任何函数之前)。 我想在用户点击页面标题时调用这样的函数,为简单起见,这是一个<h1> 元素。

我想知道是否应该用按钮替换<h1> 元素,然后在.click() 事件上调用函数empty(),如下所示:

function main() {        

    $("#idOfTheButton").on('click', functionEmpty);      

};

...或者如果我可以保留 <h1> 元素并在分配 ID 后以某种方式添加这样的功能?

...或者,我是否应该将<h1> 转换为<img> 并以某种方式添加<href> 或函数empty()

通过点击网页标题调用函数的最佳做法是什么?

        • E D I T - - - -

我保留了<h1> 元素,为其分配了ID TitleH1 并将以下函数添加到main()

function main() {

    $('#TitleH1').on('click', window.location.reload() );

};

现在的问题是页面一直在不断的重新加载,没有点击<h1>...

        • 编辑 2 - - - - -

我将window.location.reload 方法变成了一个函数(感谢@MHD 的建议),现在它可以工作了。正确的sn-p如下:

function main() {    

    $('#TitleH1').on('click', ()=> window.location.reload());

    }

【问题讨论】:

  • 最佳基于什么标准?另外,我只需将其包装在 <a> 中并在此处附加点击。
  • 我的意思是你可以做任何你想要的上述选项。单击 h1 元素,将其转换为按钮或图像等。您需要更好地定义构成“最佳”的标准。
  • 有点取决于为什么单击标题应该这样做,但是在没有任何其他信息的情况下,按钮是可以访问的选择,是的。带有点击监听器的简单h1 不能是例如键盘激活,无需额外工作。 (记住type="reset" 也存在。)
  • 可能最好在User Experience上问这个问题,但你应该先阅读他们的help center以确保它是主题。
  • 把它变成一个函数:$('#TitleH1').on('click', () => window.location.reload());

标签: javascript jquery html onclick tags


【解决方案1】:

标题不是按钮,按钮也不是标题。你的视觉设计对我来说听起来很奇怪,这让我觉得你的用户体验可能会受到影响。

如果您使用A-元素,那么您正在创建一个带有href 属性的链接。它的意图是导航。因此,您最初将其设为button 是最有意义的。如果您希望它成为按钮,请不要滥用A-元素;只需使用一个按钮。

我的建议是:保持 H1 元素不变。在表单中添加一个重置按钮,将其标记为“重置”。然后onClick 可以触发重置功能,尽管<input type="reset" /> 按钮会自动为您执行此操作,如果您在form 内。

【讨论】:

    猜你喜欢
    • 2011-12-31
    • 2015-07-28
    • 2019-11-09
    • 2013-12-02
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2020-07-15
    • 2022-07-01
    相关资源
    最近更新 更多