Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 jQuery+;返回单击元素的函数_Javascript_Jquery - Fatal编程技术网

Javascript jQuery+;返回单击元素的函数

Javascript jQuery+;返回单击元素的函数,javascript,jquery,Javascript,Jquery,我已经在这上面呆了很长时间了,我正在寻找一些指导。。。 我想把下面的内容变成更具活力的东西。我希望“选择器”根据单击的元素进行更改 所以这就是我认为需要做的: 找出单击了哪个元素。(h1,p,ol) 现在该元素位于变量中,将类似的函数应用于我在下面创建的函数 否则,我必须为每个元素实例指定相同的函数。(h1、h2、h3、p、ul、ol) 到目前为止,这就是我所拥有的:(这是有效的,但显然只适用于我的h1元素) 任何帮助都是非常感激的。。提前谢谢 *更新** 另一种表达/描述我想表达的意思的方式:

我已经在这上面呆了很长时间了,我正在寻找一些指导。。。 我想把下面的内容变成更具活力的东西。我希望“选择器”根据单击的元素进行更改

所以这就是我认为需要做的:

  • 找出单击了哪个元素。(h1,p,ol)
  • 现在该元素位于变量中,将类似的函数应用于我在下面创建的函数 否则,我必须为每个元素实例指定相同的函数。(h1、h2、h3、p、ul、ol)

    到目前为止,这就是我所拥有的:(这是有效的,但显然只适用于我的h1元素)

    任何帮助都是非常感激的。。提前谢谢

    *更新**

    另一种表达/描述我想表达的意思的方式:

    假设容器中有许多不同的元素。(如〈内容〉正文)

    • 对于每个不同的元素类型(h1、h2、p)-一次仅显示一个。(默认情况下,从每个el的第一个开始。)
    • 当您单击该元素时,它将在同一个元素同级中循环。(h1将隐藏当前h1,并显示下一个h1,当它到达结束/最后一个h1时,它将重新启动循环)

    如果要将选择器应用于多个不同的DOM元素,可以使用逗号分隔选择器:

    $('h1,p,ol').click(function(){ })
    

    您可以使函数动态化,如下所示:

    showHide('h1');
    showHide('p');
    showHide('ol');
    
    function showHide(element){
    
        $(element).click(function() {    
                $(element).hide(); //hide current element.
                $(element).next().show(); //display next element.
    
                var numofEl = $(element).length;
    
                if ($(element).next().index() == numofEl) { //if we're at last element,
                $(element).eq(0).show(); //restart cycle.
                }
        });
    }
    
    看看

    你可以用两种方法来做,比如

    $("h1,p,ol,div").bind("click",function(){
    
    //write the generic code here
    });
    
    另外(如
    8vius
    所示)

    在处理程序内部,您可以通过
    $(this)
    this

    这是小提琴

    这是你想要的吗

    var length = $("#content_body").children().length;
    $("#content_body").children().each(function(index){
    
    $(this).click(function() {    
    $(this).hide(); //hide current element.
    $(this).next().show(); //display next element.
    
    
    if (length-1 == index) { //if we're at last element,
    $("h1:first-child").show(); //restart cycle.
    }
    });
     });
    

    是否要将相同的函数应用于所有元素或类似的函数?当你说
    $(this).next()
    你想要相同类型的下一个元素还是任何下一个元素Hi Nivas,当我说next时,我指的是下一个相同的元素,所以如果我们说的是h1元素,它会转到下一个h1 sibling.hmmm。我需要它只针对当前元素。如果我点击h1,只循环h1元素。当它到达容器中的最后一个h1时,重新启动cycle.hmmm,但这并不能解决我的问题,即保持“循环”特定于单击的元素。如果我点击h1元素,我希望它隐藏当前元素,显示下一个,直到它到达最后一个h1,然后重复。这些元素是嵌套的吗?或者只是相邻?它们是相邻的。他们都坐在一个周围的“内容”主体分区中。如果可以的话,您可以为每个数字分配ID,您可以执行$(“选择器”+ID)。单击()
    $('h1,p,ol,div').click(function(){ 
    //write the generic code here
    })
    
    var length = $("#content_body").children().length;
    $("#content_body").children().each(function(index){
    
    $(this).click(function() {    
    $(this).hide(); //hide current element.
    $(this).next().show(); //display next element.
    
    
    if (length-1 == index) { //if we're at last element,
    $("h1:first-child").show(); //restart cycle.
    }
    });
     });