Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在外部javascript函数中使用jquery load()?_Javascript_Jquery - Fatal编程技术网

如何在外部javascript函数中使用jquery load()?

如何在外部javascript函数中使用jquery load()?,javascript,jquery,Javascript,Jquery,我正在尝试用javascript创建我自己的工具,这将帮助我将一些php函数/文件加载到我的div中 以下是我的javascript: $(document).ready(function () { $('.btn').click(function() { $('#someid').testit(); // $('#someid').load('somefile'); it works return false;

我正在尝试用javascript创建我自己的工具,这将帮助我将一些php函数/文件加载到我的div中

以下是我的javascript:

$(document).ready(function () {
    $('.btn').click(function() {        
        $('#someid').testit();
        //   $('#someid').load('somefile');  it works
        return false;
    })   
});

function testit() { 
    $(this).load('somefile');
}
和我的html:

<div id="someid"></div>
<form>
    <input type="submit" value="test" class="btn" />
</form>


我无法从外部函数加载资源-这是为什么?

如果您想调用以下内容:

$('#someid').testit();
然后,您必须创建一个jQuery插件来定义方法
testit
。该代码看起来像这样:

jQuery.fn.testit = function() {
    return this.load('somefile');
}
$('#someid').testit();
然后,也只有这样,才能使用
testit()
作为jQuery方法,如下所示:

jQuery.fn.testit = function() {
    return this.load('somefile');
}
$('#someid').testit();
并且,它将在所需的选择器上操作


下面是一些正在编写的插件方法,如此。

如果您想调用以下内容:

$('#someid').testit();
然后,您必须创建一个jQuery插件来定义方法
testit
。该代码看起来像这样:

jQuery.fn.testit = function() {
    return this.load('somefile');
}
$('#someid').testit();
然后,也只有这样,才能使用
testit()
作为jQuery方法,如下所示:

jQuery.fn.testit = function() {
    return this.load('somefile');
}
$('#someid').testit();
并且,它将在所需的选择器上操作


以下是一些正在编写的插件方法。

您需要执行以下操作:

$.fn.testit = function () {
  return this.load('somefile');
}

您需要执行以下操作:

$.fn.testit = function () {
  return this.load('somefile');
}

不幸的是,您无法将这样的函数链接到开箱即用,您必须将其放入jquery.fn原型中才能制作插件

您可以改为使用选择器上的
.each()
函数调用您的函数


在您的情况下,如果要调用
$(“#someid”)。每个(testit)
jquery随后将对找到的每个元素调用testit()函数。

不幸的是,您无法将这样的函数从盒子中链接出来,您必须将其放入jquery.fn原型中才能制作插件

您可以改为使用选择器上的
.each()
函数调用您的函数


在您的情况下,如果要调用
$(“#someid”)。每个(testit)jquery随后将对找到的每个元素调用testit()函数。

您可以像这样传递元素

$(document).ready(function () {
    $('.btn').click(function() {        
        testit($('#someid'));
        return false;
    })   
});

function testit(el) { 
    el.load('somefile');
}

或者像jfriend00提到的那样创建一个JQuery插件

您可以像这样传递元素

$(document).ready(function () {
    $('.btn').click(function() {        
        testit($('#someid'));
        return false;
    })   
});

function testit(el) { 
    el.load('somefile');
}

或者像jfriend00提到的那样创建一个JQuery插件

它真的不能那样工作!你不能仅仅创建一个常规函数并将其链接到jQuery对象,但是你可以使用jQuery的$.fn构造函数来制作一个可链接的插件,这一切都在jQuery的网站上进行了解释。谢谢,但这是在一些jQuery选择器上启动我自己的JS函数的一种方法吗?再说一次,它不是这样工作的吗?您可以将元素作为参数传递到函数中,如:
testit(filename,element)
,但不能将函数链接到元素。下面是一个非常简单的示例:Thanky You;)我会试着那样做-它更优雅:)它真的不那样工作!你不能仅仅创建一个常规函数并将其链接到jQuery对象,但是你可以使用jQuery的$.fn构造函数来制作一个可链接的插件,这一切都在jQuery的网站上进行了解释。谢谢,但这是在一些jQuery选择器上启动我自己的JS函数的一种方法吗?再说一次,它不是这样工作的吗?您可以将元素作为参数传递到函数中,如:
testit(filename,element)
,但不能将函数链接到元素。下面是一个非常简单的示例:Thanky You;)我将尝试这样做-它更优雅:)我简化了插件函数一点,因为
。load()
已经为您迭代了jQuery对象。我简化了插件函数一点,因为
。load()
已经为您迭代了jQuery对象。