Javascript,确定在函数中选择了哪个按钮,类似于iOS中的(id)sender?
我正在学习一个Javascript类,想知道是否有一种方法可以告诉我们在调用函数时选择了哪个按钮。我基本上有这样一种方法:Javascript,确定在函数中选择了哪个按钮,类似于iOS中的(id)sender?,javascript,ajax,Javascript,Ajax,我正在学习一个Javascript类,想知道是否有一种方法可以告诉我们在调用函数时选择了哪个按钮。我基本上有这样一种方法: function sendRequest() { var url = "http://classwebsite/bookmarks.php"; url += "?userid=crystal"; var transmission = document.getElementById("transmission").value; url += "
function sendRequest()
{
var url = "http://classwebsite/bookmarks.php";
url += "?userid=crystal";
var transmission = document.getElementById("transmission").value;
url += "&response=" + transmission;
var callback = {success:handleResponse,
failure:handleFailure,
timeout:5000
};
var transaction = YAHOO.util.Connect.asyncRequest("GET", url, callback, null);
}
按下按钮时会调用此方法。它基本上以适当的JSON、XML等格式返回教授的响应并显示它。我想添加一个“添加”功能,向表中添加新行。通过在上述方法中调用相同的URL并手动将其放入地址栏即可实现:
http://classwebsite/bookmarks.php?userid=crystal&action=add&name=yahoo&url=yahoo.com&desc=Yahoo+website
在这个场景中,如果我有另一个名为“Add”的按钮来添加表单中的字段,我会调用相同的sendRequest()方法,并相应地修改url吗?如果是,如果“列表”按钮和“添加”按钮都绑定到同一个事件处理程序,我如何知道按下了哪个按钮
或者,使用另一个方法处理addRequest()并仅从表单中添加字段,这是更好的设计吗?谢谢。您应该能够修改javascript函数的参数以查看发件人 还有一个名为arguments的隐藏数组,可以让您查看函数可用的参数,以防您好奇
function sendRequest(sender, args) {
//sender is your clicked button
var url = "http://classwebsite/bookmarks.php";
url += "?userid=crystal";
var transmission = document.getElementById("transmission").value;
url += "&response=" + transmission;
var callback = {success:handleResponse,
failure:handleFailure,
timeout:5000
};
var transaction = YAHOO.util.Connect.asyncRequest("GET", url, callback, null);
}
如果按下按钮,则应将事件传递给函数。事件对象包含单击的
目标
function sendRequest(e) {
var target;
if(!e) {
e = window.event;
}
// the button clicked can now be accessed as
// we use the ternary because IE uses a different property
target = e.target ? e.target : e.srcElement;
}
你会注意到其中的几个if语句。。。这是因为IE与标准有点不同。然而,我看到您正在为一些js使用Yahoo库。我想,如果您要使用此库的功能来绑定事件,它还将规范化传入回调的事件对象,这样您就不必手动创建xbrowser调节。如果您确实像应该使用的那样使用Yahoo utils(即通过
Yahoo.util.event.addListener()
),则,然后您的按钮被此
引用
见YUI文档
此外,请在使用URL参数之前对其进行正确编码
var transmission = document.getElementById("transmission").value,
url = "http://classwebsite/bookmarks.php"
+ "?userid=crystal"
+ "&response=" + encodeURIComponent(transmission); // <- !!
var transmission=document.getElementById(“transmission”).value,
url=”http://classwebsite/bookmarks.php"
+“?userid=crystal”
+“&response=“+encodeURIComponent(传输)”//