Javascript jQuery+;返回单击元素的函数
我已经在这上面呆了很长时间了,我正在寻找一些指导。。。 我想把下面的内容变成更具活力的东西。我希望“选择器”根据单击的元素进行更改 所以这就是我认为需要做的:Javascript jQuery+;返回单击元素的函数,javascript,jquery,Javascript,Jquery,我已经在这上面呆了很长时间了,我正在寻找一些指导。。。 我想把下面的内容变成更具活力的东西。我希望“选择器”根据单击的元素进行更改 所以这就是我认为需要做的: 找出单击了哪个元素。(h1,p,ol) 现在该元素位于变量中,将类似的函数应用于我在下面创建的函数 否则,我必须为每个元素实例指定相同的函数。(h1、h2、h3、p、ul、ol) 到目前为止,这就是我所拥有的:(这是有效的,但显然只适用于我的h1元素) 任何帮助都是非常感激的。。提前谢谢 *更新** 另一种表达/描述我想表达的意思的方式:
- 对于每个不同的元素类型(h1、h2、p)-一次仅显示一个。(默认情况下,从每个el的第一个开始。)
- 当您单击该元素时,它将在同一个元素同级中循环。(h1将隐藏当前h1,并显示下一个h1,当它到达结束/最后一个h1时,它将重新启动循环)
$('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.
}
});
});