我已经用这种方式替换了所选择的替换和插入的dom元素:
$(".editLink").click(function () {
var $temp = $(".editLink").parent().prev().find("label").html();
var $tempBox = $(".editLink").parent().prev().find("label").replaceWith("<input type='text' name='dataUpdate'/>");
$tempBox.insertAfter("<input type='submit' value='Update'/>");
});
然而,变化闪烁,......并且不会持续存在。它们只持续一秒钟......(我想只是在活动时间。我怎么能让它们永远存在?
更新:
<table width="400px">
<form action="/Admin/Update?Length=4" method="post">
<tr>
<td>
<label for="fadsf">
fadsf</label>
</td>
<td>
<a class="editLink" href="/Admin/MenuManagement?Length=5">Edit</a>
</td>
<td>
<a class="deleteLink" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#1"
href="/Admin/Delete?deleteID=1&unDelete=1" id="1" title="0">Delete</a>
</td>
</tr>
</form>
答案 0 :(得分:1)
我猜你会建议它们只在事件发生时间内持续存在,因为你绑定了一个<a>
标签,导致页面重新加载或导航到其他地方。你需要像这样阻止这种默认行为:
$(".editLink").click(function (e) {
... other code
$(e).preventDefault();
... other code
});
文档 - https://developer.mozilla.org/en/DOM/event.preventDefault
更新 - 基于您现在提供的HTML
您的HTML看起来无效。您无法在table
代码和tr
代码之间嵌套表单代码,并希望它能够正常运行。首先,将表单标记移到表格外部。其次,使用匹配的</table>
标记关闭表格。也许这会有所帮助。
希望这有帮助!
答案 1 :(得分:1)
从点击处理程序返回false将阻止浏览器跟踪href
中的url$(".editLink").click(function () {
var $temp = $(".editLink").parent().prev().find("label").html();
var $tempBox = $(".editLink").parent().prev().find("label").replaceWith("<input type='text' name='dataUpdate'/>");
$tempBox.insertAfter("<input type='submit' value='Update'/>");
return false;
});
您还可以使用event.preventdefault() http://api.jquery.com/event.preventDefault/
$(".editLink").click(function (event) {
event.preventDefault();
/* your code*/
})