我正在编写一个Jquery插件,我需要将它用作选择器。但它不起作用。
这是插件的代码:
$.fn.submitNow=function(onSuccess){
var thisElement=this;
$(document).on('submit',this,function(e){
e.preventDefault();
$.get($(this).attr('action'),function(data){
onSuccess.call(thisElement, data);
});
});
}
这是html代码段(动态创建的nb。):
<form action="demoLink" class="chosen-form">
<input name="code" type="text">
<button type="submit">Submit</button>
</form>
以下是代码:
$('.chosen-form').submitNow(function(data){
alert(data);
});
我的猜测是 此 ,因为 on() 功能中的参数无法使用。如何在 on()函数中将 此 作为选择器传递?
答案 0 :(得分:1)
我不明白你的插件会做什么,但回答你的问题:
从Jquery文档中,selector参数必须是字符串。
[选择器]
类型:字符串
用于过滤触发事件的所选元素的后代的选择器字符串。如果选择器为null或省略,则事件始终在到达所选元素时触发。
答案 1 :(得分:1)
如果您动态创建表单,则无法使用$(selector).widgetName()
绑定处理程序。你应该只使用一个以选择器作为参数的普通函数。
$.submitNow=function(selector, onSuccess){
$(document).on('submit',selector,function(e){
e.preventDefault();
$.get($(this).attr('action'),function(data){
onSuccess.call(this, data);
});
});
};
然后你把它称为:
$.submitNow('.chosen-form', function(data) {
alert(data);
});