如何从javascript调用jQuery函数?
//jquery
$(function() {
function my_fun(){
/.. some operations ../
}
});
//just js
function js_fun () {
my_fun(); //== call jquery function
}
答案 0 :(得分:16)
你不能。
function(){
function my_fun(){
/.. some operations ../
}
}
这是一个关闭。 my_fun()
仅在该匿名函数内部定义。如果您在正确的范围级别(即全局范围内)声明它,则只能调用my_fun()
。
$(function () {/* something */})
是一个IIFE,意味着它在DOM准备就绪时立即执行。通过在该匿名函数中声明my_fun()
,可以防止脚本的其余部分“看到”它。
当然,如果要在DOM完全加载时运行此函数,则应执行以下操作:
function my_fun(){
/* some operations */
}
$(function(){
my_fun(); //run my_fun() ondomready
});
// just js
function js_fun(){
my_fun(); //== call my_fun() again
}
答案 1 :(得分:15)
是的,你可以(这是我理解原始问题的方式)。 我就是这样做的。只需将其与外部环境联系起来。 例如:
//javascript
my_function = null;
//jquery
$(function() {
function my_fun(){
/.. some operations ../
}
my_function = my_fun;
})
//just js
function js_fun () {
my_function(); //== call jquery function - just Reference is globally defined not function itself
}
我在尝试访问已实例化的对象的方法时遇到了同样的问题 仅在DOM对象上准备就绪。作品。我的例子:
MyControl.prototype = {
init: function {
// init something
}
update: function () {
// something useful, like updating the list items of control or etc.
}
}
MyCtrl = null;
// create jquery plug-in
$.fn.aControl = function () {
var control = new MyControl(this);
control.init();
MyCtrl = control; // here is the trick
return control;
}
现在你可以使用简单的东西:
function() = {
MyCtrl.update(); // yes!
}
答案 2 :(得分:11)
var jqueryFunction;
$().ready(function(){
//jQuery function
jqueryFunction = function( _msg )
{
alert( _msg );
}
})
//javascript function
function jsFunction()
{
//Invoke jQuery Function
jqueryFunction("Call from js to jQuery");
}
http://www.designscripting.com/2012/08/call-jquery-function-from-javascript/
答案 3 :(得分:5)
<script>
// Instantiate your javascript function
niceJavascriptRoutine = null;
// Begin jQuery
$(document).ready(function() {
// Your jQuery function
function niceJqueryRoutine() {
// some code
}
// Point the javascript function to the jQuery function
niceJavaScriptRoutine = niceJueryRoutine;
});
</script>
答案 4 :(得分:1)
jQuery函数就像JavaScript函数一样被调用。
例如,使用jQuery addClass函数动态地将类“red”添加到id为“orderedlist”的document元素:
$("#orderedlist").addClass("red");
与调用常规函数的常规JavaScript相反:
var x = document.getElementById("orderedlist");
addClass()是一个jQuery函数,getElementById()是一个JavaScript函数。
美元符号功能使jQuery addClass功能可用。
唯一的区别是jQuery示例调用jQuery对象$(“#orderedlist”)的addclass函数,而常规示例调用文档对象的函数。
在您的代码中
$(function() {
// code to execute when the DOM is ready
});
用于指定DOM准备就绪时要运行的代码。
它没有区分(正如您所想)什么是常规JavaScript代码中的“jQuery代码”。
因此,要回答您的问题,只需按照惯例调用您定义的函数。
//create a function
function my_fun(){
// call a jQuery function:
$("#orderedlist").addClass("red");
}
//call the function you defined:
myfun();
答案 5 :(得分:1)
我做到了......
我只是写
jQuery('#container').append(html)
而不是
document.getElementById('container').innerHTML += html;
答案 6 :(得分:0)
我的问题是我从长角度看它:
function new_line() {
var html= '<div><br><input type="text" value="" id="dateP_'+ i +'"></div>';
document.getElementById("container").innerHTML += html;
$('#dateP_'+i).datepicker({
showOn: 'button',
buttonImage: 'calendar.gif',
buttonImageOnly: true
});
i++;
}
答案 7 :(得分:0)
//调用jquery函数的javascript函数
//在javascript部分
function js_show_score()
{
//we use so many javascript library, So please use 'jQuery' avoid '$'
jQuery(function(){
//Call any jquery function
show_score(); //jquery function
});(jQuery);
}
//在Jquery部分
jQuery(function(){
//Jq Score function
function show_score()
{
$('#score').val("10");
}
});(jQuery);
答案 8 :(得分:0)
<script>
$.myjQuery = function() {
alert("jQuery");
};
$(document).ready(function() {
alert("Welcome!");
});
function display() {
$.myjQuery();
};
</script>
<input type="button" value="submit" onclick=" display();">
希望这对你有用!