如何在jquery中的选择器中使用它

时间:2016-02-19 20:24:16

标签: javascript jquery html jquery-plugins

我正在编写一个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()函数中将 作为选择器传递?

2 个答案:

答案 0 :(得分:1)

我不明白你的插件会做什么,但回答你的问题:

从Jquery文档中,selector参数必须是字符串。

http://api.jquery.com/on/

[选择器]

类型:字符串

用于过滤触发事件的所选元素的后代的选择器字符串。如果选择器为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);
});