Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能知道哪个锚标签被点击了?_Javascript_Jquery - Fatal编程技术网

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>&gt;'+productname+'&gt;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
    元素
  • 在一些js函数中,我如何知道单击了哪个
    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>&gt;'+productname+'&gt;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>&gt;'+productname+'&gt;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>&gt;' + productname + '&gt;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>&gt;' + productname + '&gt;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