jQuery:调用click();从另一个点击();

时间:2009-12-28 07:58:27

标签: jquery click

是否可以做这样的事情

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').click();
});

...我猜不是,但是有没有可行的解决方法?

UPD:<!/强>

好吧,好吧。这有点复杂。我安装了jCarousel模拟器 - JQueryTOOLS - Scrollable - 我想这就是它的名字 链接:http://flowplayer.org/tools/demos/scrollable/gallery.html

我认为它有click()事件以某种方式硬编码,当我点击拇指时,插件将其滚动到中心位置。然后我绑定了另一个点击事件,以便我可以显示大图像。它的工作方式类似于上面链接中的示例

现在我必须让这个大图像可点击,所以点击它我可以继续到画廊中的下一个图像,我做了,但现在我必须让旋转木马自动滚动到下一个拇指当我点击这个大图像。所以,如果我简化我的代码,那么本质仍然是那样的:

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').click();
});

其中#idone是图库中的拇指,#idtwo是该预览图像。我不知道默认情况下哪个函数必须单击。另一件事:我的猜测是将相同的事件绑定到同一个对象应该替换前一个 - 它看起来不一定..而且我很确定它正好是click();而不是mouseup \ down等因为调用< / p>

$('#idone').click();

在页面加载时,技巧和轮播滚动到拇指,id =“idone”

以防万一:jquery-1.3.2.js

感谢大家的回答,请原谅我蹩脚的英语,没时间刷牙(:

UPD:

OK!所以我放弃了这个))但是要结束这个问题并结束我必须知道的讨论。所有人,谁写道,这是可能的和建议的变种。你有没有想过他们?!他们真的为你工作吗?是我,谁错了?并且 - 无论如何,谢谢!

5 个答案:

答案 0 :(得分:18)

这将是另一种可能性:

$('#idone').click(function(){
 alert('we do stuff!');
});

$('#idtwo').click(function(){
 $('#idone').trigger('click');
});

编辑:我发现您的代码应该已经完成​​了。

答案 1 :(得分:5)

定义一个由两个事件调用的单独函数?

function doSomething() {
 alert('we do stuff!');
}

$('#idone').click(doSomething);    
$('#idtwo').click(doSomething);

或只是

$('#idone, #idtwo').click(doSomething);

[编辑 - jQuery Scrollable]

您是否尝试过使用jQuery Scrollable中的缩略图:

$('#idone').next(); 

(我认为#idone是可滚动的)

答案 2 :(得分:1)

实际上致电:

$("#idone").click();

将执行您想要的操作:在click()上调用#idone事件处理程序。

话虽如此,我建议将其拆分为一个单独的函数,因为像这样的链接事件处理程序有可能混淆其他人阅读代码。例如:

$('#idone').click(idone_click);
$('#idtwo').click(idtwo_click);

function idone_click() {
  alert("id one click");
}

function idtwo_click() {
  idone_click();
}

当然,如果你只是希望他们都做同样的事情你可以这样做:

$("#idone, #idtwo").click(function() {
  alert(this.id + " clicked");
});

答案 3 :(得分:1)

我明白了。然后你可能想做这样的事情。

$('#image_wrap img').click(function(){ // big image is clicked
    // figure out the active element of the items below
    $active_element = $('.scrollable .items .active');

    // move along to the element to its right
    $nextone = $active_element.next();

    // trigger a click on this element
    $nextone.trigger('click');
});

这样,当您单击大图像时,将触发列表中下一个预览图像上的单击事件 (如果该元素不存在,jQuery很好,什么都不做 - 没有错误。)

答案 4 :(得分:1)

你可以简单地通过Jquery Trigger来执行它。它执行附加到给定事件类型的匹配元素的所有处理程序和行为。 根据你的例子

$('#idone').click(function(){
 alert('I Am First Button');
});

$('#idtwo').click(function(){
 //THIS WILL CALL FIRST METHOD
 $('#idone').trigger('click');
 alert("I Am Second One .!");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="idone">PASS 1</span>
<br>
<button id="idtwo">PASS 2</span>