1

我有一个包含表单的 LI,在表单提交时我想淡出父 LI,我一直在尝试没有运气,我也做了一个基本形式的小提琴,谁能给我一个关于它的想法完毕?

http://jsfiddle.net/uAZ5Z/

<li>
<form>
    <input type='submit' value='delete'>
</form>
</li>

问:

 $('input').click(
     $(this).fadeOut();
 )
4

2 回答 2

5

试试这个:

$('input').click(function() {
    $(this).closest('li').fadeOut();
});
​

您的代码中有两个错误:

  1. 必须有对内部函数(匿名或非匿名)的调用$.click()
  2. $(this)在此上下文中引用<input>元素。要引用它最接近的<li>,您需要$.closest()改用。请注意,您不应该使用$.parent(),因为它只获取元素的直接父级。

<li>要在当前元素下创建任何元素,而不是仅仅做$.fadeOut(),而是这样做:

$('input').click(function() {
    $(this).closest('li').slideUp();
});

这会将元素的高度设置为 0,将其“向上滑动”。

于 2012-04-25T19:29:00.477 回答
2

jsFiddle(http://jsfiddle.net/uAZ5Z/9/

我将类型更改为“按钮”而不是“提交”,以便您留在同一页面上:

<li>
    <form>
        <input type='button' value='delete'>
    </form>
</li>​

您可以获取父级的父级,也可以找到最近的 li:

$('input').click( function()
{
    $(this).closest("li").fadeOut();
});

​</p>

于 2012-04-25T19:33:45.420 回答