首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery触发跨区点击

使用jQuery触发跨区点击
EN

Stack Overflow用户
提问于 2016-09-14 11:39:07
回答 3查看 5.1K关注 0票数 2

我想使用jQuery单击一个跨度。(我使用的是rails和foundation)

代码语言:javascript
运行
复制
<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函数:

代码语言:javascript
运行
复制
$('.details').on("click", function() {
  .... whatever I want it to do...
  //my-row-details slides down. 
}

点击“详细信息”,我想让它做的任何事情都会发生。

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

我试过了:

代码语言:javascript
运行
复制
$('.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不会向下滑动。

有什么帮助吗?

更新:注释了所有其他代码:(假设这就是单击所做的所有函数)

代码语言:javascript
运行
复制
$('.details').on("click", function() {
  $('.my-row-details').slideDown();
}

我没有触发点击,而是尝试用下面这行代码替换它:

代码语言:javascript
运行
复制
 `$('.my-row-details').slideDown();`

这也行不通。但如果我真的点击“详细信息”,它就会起作用。

EN

回答 3

Stack Overflow用户

发布于 2016-09-14 11:46:03

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

但是,触发在您自己的代码中定义的事件听起来不是一个好主意。

有一种更好的方法可以做到这一点:

代码语言:javascript
运行
复制
function openDetails() {
    // Whatever you want to do
}

$('.details').on("click", openDetails);

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

代码语言:javascript
运行
复制
openDetails();

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

票数 3
EN

Stack Overflow用户

发布于 2016-09-14 13:52:57

找到了问题所在。

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

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

票数 1
EN

Stack Overflow用户

发布于 2016-09-14 12:53:44

首先通过在click函数中保留一个警告来检查该跨度的click是否工作,如果它不工作,则尝试以下操作

$('.details').live('click', function(){ //your logic goes here });或您可以试用此$(".details").bind("click", function(){ //your logic });

希望它能起作用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39482139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档