我想使用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.
}
点击“DETAILS”,无论我想要它做什么都会发生。
但是,作为另一个jquery函数的一部分,我想触发它的点击。
我试过了:
$('.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");
但我似乎无法触发点击。即。我的行细节不会下滑。
任何帮助?
更新: 评论了所有其他代码:(假设这是点击的所有功能)
$('.details').on("click", function() {
$('.my-row-details').slideDown();
}
我尝试用此行替换它,而不是触发点击:
$('.my-row-details').slideDown();
这也不起作用。但是如果我真的点击“DETAILS”
就可以了答案 0 :(得分:3)
.click()
和.trigger("click");
都应该有效。
然而,触发您自己的代码中定义的事件听起来是个坏主意 有更好的方法:
function openDetails() {
// Whatever you want to do
}
$('.details').on("click", openDetails);
&#34;作为另一个jquery函数的一部分&#34;:
openDetails();
这样,您可以确保以清晰易读的方式实现此行为。
答案 1 :(得分:0)
首先通过在点击功能中保留警报来检查该范围的点击是否有效,如果它不起作用则尝试此
protected void Page_Load(object sender, EventArgs e)
{
try
{
string name = Session["name"].ToString();
string FilePath = Server.MapPath("~/filesPDF/" + name);
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(FilePath);
if (buffer != null)
{
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
}
catch (Exception ex)
{
WebMsgBox.Show(ex.Message);
}
}
或您可以尝试此$('.details').live('click', function(){
//your logic goes here
});
希望它有效
答案 2 :(得分:0)
发现问题。
调用click()的函数是在页面加载时执行的。不是在活动上。我也在页面加载时指定了$('.my-row-details').hide();
。他们俩都互相矛盾。
解决方案是在css中为my-row-details指定display: none
。然后从jquery中调用.click();
。