这段代码在 Opera 12 中运行起来非常奇怪。
父元素只是ul,这就是 Firefox 和 Chrome 返回的内容。
在 Opera 中$(this).parent()正在返回Window对象。
有任何想法吗?jQuery 版本是 1.7.2
JS
$('.addTrait').live('click', function(e) {
e.preventDefault();
trait = $('li.trait.template').clone().removeClass('template');
parent = $(this).parent();
$(parent).after(trait);
trait.show();
});
HTML
<ul class="sortable traits">
<li class="trait">
<div class="well slim">
<input class="trait name" type="text" name="trait[%s][name]" value=""/>
<input class="trait id" type="hidden" name="trait[%s][id]" value=""/>
<input class="trait parent" type="hidden" name="trait[%s][parent]" />
<a href="" class="addTrait icon-plus"></a>
<a href="" class="removeTrait icon-remove"></a>
</div>
<ul>
</ul>
</li>
</ul>
<li class="trait template" style="display: none;">
<div class="well slim">
<input class="trait name" type="text" name="trait[%s][name]" value=""/>
<input class="trait id" type="hidden" name="trait[%s][id]" value=""/>
<input class="trait parent" type="hidden" name="trait[%s][parent]" />
<a href="" class="addTrait icon-plus"></a>
<a href="" class="removeTrait icon-remove"></a>
</div>
<ul>
</ul>
</li>