使用jQuery触发span上的单击

Trigger a click on a span using jQuery

本文关键字:单击 span jQuery 触发 使用      更新时间:2023-09-26

我想使用jQuery点击一个span。(我使用轨道和基础)

<div class = "row my-row" id="current-my-row">
 <div class = "large-12 my-row-heading" id="my-row-click">
  <%= image_tag "some_img.png"%>
  <span class="title">This is the title</span>
  <span class="details"><%= image_tag "other_img.png"%>DETAILS</span>
 </div>
  <div class = "large-12 my-row-details">
    all details
  </div>
</div>
我有一个jQuery函数:
$('.details').on("click", function() {
  .... whatever I want it to do...
  //my-row-details slides down. 
}

点击" detail ",我想让它做什么就会发生。

但是,作为另一个jQuery函数的一部分,我想触发点击。

I tried:

$('.details').click();
$('.details').trigger("click");
$('#my-row-click .details').click();
$('#my-row-click').trigger("click");
$('.details').trigger("click");
$('#my-row-click > span:nth-child(3)').click();
$('#my-row-click > span:nth-child(3)').trigger("click");

但我似乎无法触发点击。也就是说,my-row-details不会向下滑动。

帮忙吗?

更新:注释了所有其他代码:(假设这是click上的所有函数)

$('.details').on("click", function() {
  $('.my-row-details').slideDown();
}

没有触发点击,我试着用下面这行替换它:

 `$('.my-row-details').slideDown();`

这个也不行。但是如果我点击" detail "

.click().trigger("click");实际上都应该工作。

然而,触发事件,在你自己的代码中定义,听起来像一个坏主意。
有一个更好的方法:

function openDetails() {
    // Whatever you want to do
}
$('.details').on("click", openDetails);

"作为另一个jquery函数的一部分":

openDetails();

这样,您可以确保以一种清晰可读的方式实现此行为。

找到问题。

调用click()的函数将在页面加载时执行。不是在活动上。我在页面加载时也指定了$('.my-row-details').hide();。他们两人互相矛盾。

解决方案是在css中为my-row-details指定display: none。然后从jquery调用.click();

首先通过在click函数中保持警报来检查该span的click是否工作,如果它不工作则尝试以下

$('.details').live('click', function(){ //your logic goes here }); 或者你可以试试这个 $(".details").bind("click", function(){ //your logic });


希望能成功