我试图让一个表单元素在单击该 div 中包含的按钮时在该 div 下向下滑动。
当您再次单击该按钮时,我希望表单能够滑动();
所以我的HTML就像
<div class='cell'><div class='enquiry-button'></div></div>
<div class='cell'><div class='enquiry-button'></div></div>
<div class='cell'><div class='enquiry-button'></div></div>
我试过这个:
$( ".enquiry-button" ).click( function(e) {
e.preventDefault();
e.stopPropagation();
$(this).closest( '.cell' ).append(
"<div class='enquiry-form'>" +
"<form>" +
"Your Email: <input type='text' name='email'>" +
"First name: <input type='text' name='firstname'>" +
"<br>Last name: <input type='text' name='lastname'>" +
"<br>Contact No: <input type='text' name='lastname'>" +
"<br>Postcode: <input type='text' name='postcode'>" +
"<br>Optional Comment: <input type='textarea' name='comment'>" +
"<input type='submit' value='Submit'>"+
"</form>" +
"</div>"
);
$(this).closest( '.cell' ).find(".enquiry-form:last").slideDown("slow");
});
但是 click 函数会在每个带有类 enquiry-button 的元素上触发(如您所料)。
有没有更简单的方法来做到这一点?
更新
问题是我的<div class='cell'>
元素被另一组 JS 脚本动态加载。在我的主 HTML 文件中,我在准备好的文档中调用了上述点击函数。似乎动态元素还没有“准备好”,因为 using$(window).load
解决了这个问题。