当您在HTML中使用事件时,如果只包含一小部分JavaScript,那会是什么?它被称为“JavaScript属性函数”,只是一个“JavaScript属性”,还是什么?例如:
<button onClick="location.href='some_place'">click me</button>
使用事件时,您使用“return”关键字,那叫什么?是否有一些特定的术语用于描述这一点?我知道它做了什么以及它是如何工作的,我只是不知道该怎么称呼它。例如:
<button onClick="return someFunction();">click me</button>
这两个JavaScript可以合并为一个属性吗?我想将前两个例子合二为一。单击按钮时,我想调用JavaScript函数。如果函数返回“true”,我想要触发location.href。如果函数返回“false”,我不希望触发location.href。
答案 0 :(得分:0)
onclick
是事件处理程序
一旦函数到达将停止执行的return语句,return
就是return语句
组合这两个函数可能看起来像这样
function someFunction(){
var x = someBool;
if(x){
location.href='some_place'
}else{
return false;
}
}
答案 1 :(得分:0)
onclick
是一个将事件绑定到元素的HTML属性。属性的值是事件处理程序的主体。您可以在那里编写任何您想要的内容,但是您需要在代码中转义引号"
,否则HTML解析器会认为您已经完成了属性值的定义
所以你的代码可以是:
<button onclick="if(someFunction()) location.href='some_place';"></button>
但是,就像Sam Creamer指出的那样,你不需要一个按钮。您可以使用a href
:
<a href="some_place" onclick="return someFunction();"></a>
如果someFunction
返回false,则点击事件将被取消,您将无法在任何地方重定向。
如果您想在属性中添加更多代码,更实用的方法是:
onclick="return someOtherFunction()"
,其中someOtherFunction包含您的所有代码 或者像这个JS代码:
document.getElementById("the_id_of_the_element").onclick=function() {/* your code here */};
,但这可能不适用于旧浏览器(其他代码是必需的):
function bindEvent(element, type, handler) {
if(element.addEventListener) {
element.addEventListener(type, handler, false);
} else {
element.attachEvent('on'+type, handler);
}
}
bindEvent(document.getElementById("the_id_of_the_element"), 'click', function() {/*Your code here*/ });
您还可以使用jQuery来绑定事件,这些事件完全相同
$("#the_id_of_the_element").on("click", function() {/*your code here*/});
$("#the_id_of_the_element").on("click", function() {/*some other code*/});
//both will execute
答案 2 :(得分:0)
undefined
,这取决于上下文,可能不是合理的事情要做。在这种情况下,您可能希望显式返回true
以保持清晰。