Javascript 我怎样才能知道哪个锚标签被点击了?
我正在动态创建我的内容,当单击锚定标记时,调用Javascript 我怎样才能知道哪个锚标签被点击了?,javascript,jquery,Javascript,Jquery,我正在动态创建我的内容,当单击锚定标记时,调用navigate()函数。如何确定单击了哪个锚定标记 function navigate() { //var location=$(this).attr("id"); switch(location) { /*case "Configuration": $('#detailTable').empty();
navigate()
函数。如何确定单击了哪个锚定标记
function navigate()
{
//var location=$(this).attr("id");
switch(location)
{
/*case "Configuration": $('#detailTable').empty();
$('#detailTable').append(navigateConfig);
break;*/
default: alert(location+" a tag was clicked");
}
}
$('#detailTable').empty();
$('<div width="100%">')
.attr('id','javainfoSpan')
.html('<div class="titleBlue"><a href="javascript:navigate();">Configuration</a>>'+productname+'>Java Properties</div>'+
//some other stuff
'</div>')
.appendTo('#detailTable');
函数导航()
{
//变量位置=$(this.attr(“id”);
开关(位置)
{
/*案例“配置”:$('#detailTable').empty();
$('#detailTable')。追加(navigateConfig);
中断*/
默认值:警报(位置+“已单击标记”);
}
}
$('#detailTable').empty();
$('')
.attr('id','javainfoSpan'))
.html(“”+productname+“Java属性”+
//一些其他的东西
'')
.appendTo(“#detailTable”);
更新:
我的问题很简单
detailTable
中将有许多a
元素a
元素function navigate($element) {
//var location = $element.attr("id");
switch (location) {
/*case "Configuration": $('#detailTable').empty();
$('#detailTable').append(navigateConfig);
break;*/
default: alert(location+" a tag was clicked");
}
}
$('#detailTable').empty();
$('<div width="100%">')
.attr('id','javainfoSpan')
.html('<div class="titleBlue"><a href="#">Configuration</a>>'+productname+'>Java Properties</div>'+
//some other stuff
'</div>')
.appendTo('#detailTable');
// Pre jQuery 1.7...
$(".titleBlue").delegate("A", "click", function() {
navigate($(this));
}
// jQuery 1.7...
$(".titleBlue A").on("click", function() {
navigate($(this));
}
函数导航($element){
//变量位置=$element.attr(“id”);
开关(位置){
/*案例“配置”:$('#detailTable').empty();
$('#detailTable')。追加(navigateConfig);
中断*/
默认值:警报(位置+“已单击标记”);
}
}
$('#detailTable').empty();
$('')
.attr('id','javainfoSpan'))
.html(“”+productname+“Java属性”+
//一些其他的东西
'')
.appendTo(“#detailTable”);
//jQuery1.7之前的版本。。。
$(“.titleBlue”).delegate(“A”,“click”,function(){
导航($(此));
}
//jQuery1.7。。。
$(“.titleBlue A”)。在(“单击”,函数(){
导航($(此));
}
我将处理程序更改为使用jQuery的delegate()
方法(或jQ 1.7+的on()
方法)。使用此方法可以更容易地将导致事件的元素传递给处理函数,它作为$element
变量
然后,您可以根据需要执行此操作。尝试以下操作:
function navigate($element) {
//var location = $element.attr("id");
switch (location) {
/*case "Configuration": $('#detailTable').empty();
$('#detailTable').append(navigateConfig);
break;*/
default: alert(location+" a tag was clicked");
}
}
$('#detailTable').empty();
$('<div width="100%">')
.attr('id','javainfoSpan')
.html('<div class="titleBlue"><a href="#">Configuration</a>>'+productname+'>Java Properties</div>'+
//some other stuff
'</div>')
.appendTo('#detailTable');
// Pre jQuery 1.7...
$(".titleBlue").delegate("A", "click", function() {
navigate($(this));
}
// jQuery 1.7...
$(".titleBlue A").on("click", function() {
navigate($(this));
}
函数导航($element){
//变量位置=$element.attr(“id”);
开关(位置){
/*案例“配置”:$('#detailTable').empty();
$('#detailTable')。追加(navigateConfig);
中断*/
默认值:警报(位置+“已单击标记”);
}
}
$('#detailTable').empty();
$('')
.attr('id','javainfoSpan'))
.html(“”+productname+“Java属性”+
//一些其他的东西
'')
.appendTo(“#detailTable”);
//jQuery1.7之前的版本。。。
$(“.titleBlue”).delegate(“A”,“click”,function(){
导航($(此));
}
//jQuery1.7。。。
$(“.titleBlue A”)。在(“单击”,函数(){
导航($(此));
}
我将处理程序更改为使用jQuery的delegate()
方法(或jQ 1.7+的on()
方法)。使用此方法可以更容易地将导致事件的元素传递给处理函数,它作为$element
变量
然后您可以根据需要使用它。我知道您现在正在做什么,您正在动态创建
a
元素。如果您调用javascript:navigate()
,那么您使用的是标准javascript,而不是jquery(jquery需要使用$(this)
选择器)
相反,您应该有以下内容:
$("body").on('click', 'a', function() {
var location = $(this).attr('id');
switch(location){ /* ... */ }
});
这将在jquery中捕获动态创建的或页面加载时已经存在的任何元素的单击事件
请记住,如果您正在使用
id
,那么您需要在a
元素上设置id
attr。我知道您现在在做什么,您正在动态创建a
元素。如果您调用javascript:navigate()
,那么您使用的是标准javascript,而不是jquery(jquery需要使用$(this)
选择器)
相反,您应该有以下内容:
$("body").on('click', 'a', function() {
var location = $(this).attr('id');
switch(location){ /* ... */ }
});
这将在jquery中捕获动态创建的或页面加载时已经存在的任何元素的单击事件
请记住,如果您正在使用
id
,那么您需要在a
元素上设置id
attr。您必须迭代使用jquery“each”函数的每个元素。通过“this”可以获得click对象。您必须迭代使用jquery“each”函数的每个元素。通过“this”您可以获得单击对象。这里也有一种处理方法:
$(document).ready(function() {
var productname = "mytest";
$('#detailTable').empty();
$('<div width="100%">').attr('id', 'javainfoSpan').html('<div class="titleBlue"><a href="#" id="'+productname+'" class="navigate">Configuration</a>>' + productname + '>Java Properties</div>' + '<table id="list1" width="100%"></table>' + '<div id="gridpager"></div>' + '</div>').appendTo('#detailTable');
$(".navigate").click(function() {
var location = $(this).attr("id");
switch (location) {
case "Configuration":
$('#detailTable').empty();
$('#detailTable').append(navigateConfig);
break;
case "mytest":
alert("My test was clicked");
break;
default:
alert(location + " a tag was clicked");
}
});
});
$(文档).ready(函数(){
var productname=“mytest”;
$('#detailTable').empty();
$('').attr('id','javainfoSpan').html(''+productname++'Java属性'++'').appendTo('#detailTable');
$(“.navigate”)。单击(函数(){
变量位置=$(this.attr(“id”);
开关(位置){
案例“配置”:
$('#detailTable').empty();
$('#detailTable')。追加(navigateConfig);
打破
案例“mytest”:
警报(“我的测试被点击”);
打破
违约:
警报(位置+“已单击标记”);
}
});
});
请在上观看,这里也有一种处理方法:
$(document).ready(function() {
var productname = "mytest";
$('#detailTable').empty();
$('<div width="100%">').attr('id', 'javainfoSpan').html('<div class="titleBlue"><a href="#" id="'+productname+'" class="navigate">Configuration</a>>' + productname + '>Java Properties</div>' + '<table id="list1" width="100%"></table>' + '<div id="gridpager"></div>' + '</div>').appendTo('#detailTable');
$(".navigate").click(function() {
var location = $(this).attr("id");
switch (location) {
case "Configuration":
$('#detailTable').empty();
$('#detailTable').append(navigateConfig);
break;
case "mytest":
alert("My test was clicked");
break;
default:
alert(location + " a tag was clicked");
}
});
});
$(文档).ready(函数(){
var productname=“mytest”;
$('#detailTable').empty();
$('').attr('id','javainfoSpan').html(''+productname++'Java属性'++'').appendTo('#detailTable');
$(“.navigate”)。单击(函数(){
变量位置=$(this.attr(“id”);
开关(位置){
案例“配置”:
$('#detailTable').empty();
$('#detailTable')。追加(navigateConfig);
打破
案例“mytest”:
警报(“我的测试被点击”);
打破
违约:
警报(位置+“已单击标记”);
}
});
});
在@Thomas:我使用的是一个
锚定标签
没有任何点击事件..这就是w