jQuery noConflict和函数未定义

时间:2014-03-15 17:34:03

标签: jquery

我一直试图让这个工作,并且已经查看了关于jQuery noConflict()的不同Q& A,并且没有找到适用于我的情况的解决方案。如果它已在其他地方得到回答我道歉。

我正在使用prototype.js和googles jquery 1.7.2并且有一个如下所示的脚本:

jQuery.noConflict(); 
(function($){

function nextPage(value){
 //Some code
}

$(document).ready(function(){

  nextPage('some value'); // Loads on doc ready

  //Some other code
});

})(jQuery);

我需要能够在点击按钮加载所有内容之后再次调用nextPage()函数,但是在用noConflict()包装后它不可用。它给出了错误“ReferenceError:nextPage is not defined”

如何定义它或我需要做什么才能在加载完所有内容后再次使用此功能?我做错了什么?

3 个答案:

答案 0 :(得分:0)

尝试将你的功能移到闭包之外。

function nextPage(value) {
    //Some code
}

jQuery.noConflict();
(function ($) {


    $(document).ready(function () {

        nextPage('some value'); // Loads on doc ready

        //Some other code
    });

})(jQuery);

答案 1 :(得分:0)

感谢A. Wolff,我能够通过以下方式实现它:

jQuery.noConflict(); 
(function($){

function nextPage(value){
//Some code

// Use jQuery here not $
jQuery('#editButton').removeClass('green_btn');

}

// Use $ here
$(document).ready(function(){

nextPage('some value'); // Loads on doc ready

//Some other code
$('#someid').click();
});

})(jQuery);

答案 2 :(得分:0)

您只需要在定义nextPage()的同一个闭包中使用按钮单击事件处理程序。这使它可以访问闭包中定义的所有变量和函数。

jQuery.noConflict(); 
(function($){

function nextPage(value){
 //Some code
}

$(document).ready(function(){

  nextPage('some value'); // Loads on doc ready

  //Some other code
});

// define your click handler here
// and it can then access everything within the enclosed function block
// including the nextPage() function
$("#myButton").click(function() {
    // do other stuff
    nextPage();
});

})(jQuery);