0
我有這個網站:jQuery插件:失敗上重新安裝插件本身
<div class="item">
<ul>
<li><a href="form.php" class="delete">delete</a></li>
</ul>
</div>
<div class="item">
<ul>
<li><a href="form.php" class="delete">delete</a></li>
</ul>
</div>
<div class="item">
<ul>
<li><a href="form.php" class="delete">delete</a></li>
</ul>
</div>
當你點擊delete
按鈕,表格將被載入請您點擊是或沒有。
當您點擊否以前的html將被返回。
在這個插件我下面進行的問題,就是你只能點擊delete
按鈕向上次,然後阿賈克斯未能在第三時間來工作。
怎麼回事?如何解決這個問題?
您可以在此link上看到此錯誤。
jQuery的:
$(document).ready(function(){
$(".delete").delete_string({targetElement:'.item'});
});
(function($){
// Attach this new method to jQuery
$.fn.extend({
// This is where you write your plugin's name
delete_string: function(options) {
// Set the default values, use comma to separate the settings, example:
var defaults = {
targetElement: '.item-needle',
targetSlibing: false
}
var options = $.extend(defaults, options);
var o = options;
// When you create the click function you can assign that element to a variable and reference it within:
var $cm = this.click(function(e){
// Set the varible.
var object = $(this);
var object_path = object.attr('href');
var object_parent = object.parents('ul');
var html_parent = object_parent.html();
var object_superparent = object.parents(o.targetElement);
var target_element = object.parents(o.targetElement);
var target_slibing = target_element.next(o.targetSlibing);
//alert(target_slibing);
// Load the form.
object_parent.load(object_path, function(){
// Attach click to the no button.
$("input[type=button][name=no]",object_parent).click(function(){
// Get the html content back.
object_parent.html(html_parent);
// Attach the delete plugin back in.
$($cm.selector,object_parent).delete_string({targetElement:o.targetElement});
return false;
});
});
return false;
});
}
});
})(jQuery);
的問題就來自這條線,我可以找出:
$($cm.selector,object_parent).delete_string({targetElement:o.targetElement});
這將是罰款,如果我只是這樣做,
$($cm.selector).delete_string({targetElement:o.targetElement});
但這會附加delete plugin
到所有其他現有的刪除按鈕屏幕上的,不是嗎?
似乎要刪除從DOM樹中的項目,這將意味着,經過3次點擊,有沒有剩下的東西? – Trefex
在實際情況中有三個以上的項目。實際上該插件最多可以進行兩次點擊,但在第三次點擊時失敗。我已經更新了OP。謝謝。 – laukok
啊,似乎你正在失去元素上的ajax處理程序。不知道爲什麼只發生2次點擊後才發生這種情況,但似乎您可能需要重新註冊Ajax事件($(「。delete」)....) – Trefex