【问题标题】:new function in onclickonclick 中的新功能
【发布时间】:2015-06-30 05:50:39
【问题描述】:

编辑:只是一个例子。我需要对 if/else 的支持

我想这样做:

<button onclick="function() {alert('Hi!');prompt('What can I do for you?', 'make a Sandwich');}">Hello World!</button>

显然这不起作用。

你知道我该怎么做吗?

如何“调用”一个新函数?

我不能简单地在&lt;script&gt;&lt;/script&gt;-node 中定义它。

【问题讨论】:

  • 查看答案,包括对 if-else 的支持
  • 您可以像往常一样在任何功能中使用if...else

标签: javascript html button onclick


【解决方案1】:

您无需function 即可拨打电话。您可以直接使用 Javascript 代码。这被认为是不好的做法。

<button onclick="alert('Hi!'); prompt('What can I do for you?','make a Sandwich');">
    Hello World!
</button>

Demo

您也可以使用function 作为事件处理程序,如下所示:

HTML

<button onclick="fnHandler();">
    Hello World!
</button>

Javascript

function fnHandler() {
    alert('Hi!');
    prompt('What can I do for you?','make a Sandwich');
}

Demo

使用addEventListener,您可以从 javascript 中绑定事件,而不是在 HTML 中内联(推荐):

HTML

<button id="myButton">
    Hello World!
</button>

Javascript

document.getElementById('myButton').addEventListener('click', function() {
    alert('Hi!');
    prompt('What can I do for you?','make a Sandwich');
});

Demo

【讨论】:

  • 我们也可以将其称为函数
  • 嗯..这只是一个例子 - 如果我想使用 if/else 怎么办?
  • 只看另一个答案@RUB3N for if-else case
  • 不-我没有通过alert('Hi')! ://
  • 我只是没有得到提示 - 没有发生,即使我删除了 if/else。 if(true) 工作正常
【解决方案2】:

不建议将函数写在参数里面。最好将它们写在一个单独的函数上,然后将它与上面听过的方法之一链接起来。您仍然可以通过使用这样的匿名函数来执行示例中所说的操作:

<button onclick='(function(){
    alert("hello world");
    prompt("I am the Doctor","oh yeah");
})()'></button>

【讨论】:

  • Self Invoking Anonymous FunctionImmediately Invoked Function Expression
【解决方案3】:

一般功能的更新版本,因为添加列表器增加了点击的唯一性

<button onclick="function_name() id="button">Some Text</button>

现在在js中编写函数定义

function function_name(){ .... statements; }

使用 if-else 的典型示例

<script>
document.getElementById('button').onclick = function() {
    if (Calc.Input.value == '' || Calc.Input.value == '0') {
         window.alert("Please enter a number");
    } else {
        document.getElementById('button').value=' Justera längd ';
        
    }
    return false;
}
</script>

【讨论】:

  • 其实这是最好的做法,也是最推荐的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多