當我把這個插件裏面的功能與$.fn.
你可以看到,我的意思here什麼是錯我的jQuery插件。我有兩種形式,它們共享相同的插件,
$(document).ready(function(){
$("#search-title").post_form_public();
$("#subscribe-email").post_form_public();
});
第一種形式將第二種形式被觸發時不再工作。
如果我只將插件附加到一個表單上,它可以正常工作。
下面是插件代碼裏面的一些詳細信息,
post_form_public: function(options) {
// Set the default values, use comma to separate the settings, example:
var defaults = {
top: 250, // The top of the proceesing popup and the result popup.
width: 400 // The width of the proceesing popup and the result popup.
}
var options = $.extend(defaults, options);
var o = options;
var $cm = this.submit(function(e){
var object = $(this);
// Get the path from attribute of action in the form.
var target_postpath = object.attr('action');
var top = o.top;
var width = o.width;
// Keep the lines below for checking.
alert($cm.selector);
// Disable the submit button so that you won't click it twice while the ajax is processing the form.
// Must use true or false for jquery > 1.6.
$('input[type=submit]',$($cm.selector)).attr('disabled', true).css({opacity:0.4});
// Post the form .
$.post(target_postpath,object.serialize(),function(xml){
//process_posted(xml); // two forms work fine with this!
$.fn.post_form_public.process_posted(xml); // but not with this!
});
return false;
});
// Callback function for proccesing the deleted item.
//function process_posted(xml)
$.fn.post_form_public.process_posted = function(xml)
{
// Enable the submit button again after processing the xml output.
// Must use true or false for jquery > 1.6.
$('input[type=submit]',$($cm.selector)).attr('disabled', false).css({opacity:1});
}
}
但是,如果我只是做了功能,無需$.fn.
,那麼這兩種形式將正常工作。我如何使用$.fn.
並使多個表單起作用!?您可以看到代碼here。
謝謝。
非常感謝這個! 「這個函數的形式有什麼用?」 - 對於工作的formn沒有任何問題。我可以問這是什麼意思,並且意味着 - 'if(!$ .fn.post_form_public.process_posted)$ .fn.post_form_public.process_posted = {};'thanks :-) – laukok
@lauthiamkok:該行檢查屬性'process_posted '存在,如果不存在,則將其創建爲新的空對象。這些函數然後被存儲爲該新對象的屬性。 – sje397
明白了!非常感謝你! :-)))) – laukok