我想从我的角度代码中调用jquery函数。所以让我坐下来我有3个函数funcX(data)
,funcY()
和funcZ()
包含在
$(document).ready(function(){
.....
})
现在funcX(data)
获取了我从角度服务获得的参数data
,funcY
和funcZ
执行了一些DOM操作。完成的DOM操作非常复杂,我不想将该代码移植到角度。那么我可以从角度调用这些函数吗?
答案 0 :(得分:2)
如果您的函数是在$(document).ready()
内写的,那么:
$(document).ready(function( ) {
function a () {
console.log("fun a");
}
})
然后它们只能在该块中可见,并且不能在其外部访问。假设您的函数实际上以任何方式使用jQuery,您可以将它们作为全局jQuery函数或jQuery方法添加到jQuery对象。
jQuery
对象本身。jQuery.fn
属性中。 两种情况的例子:
$(document).ready(function( ) {
jQuery.a = function () {
console.log("jquery global fun a");
// do something with jQuery here
}
jQuery.fn.b = function () {
console.log("jquery fun b");
// do something with jQuery here
}
})
现在你可以使用这两个函数:
$.a(); // global functions are called from the jQuery object itself
$.('.some-class').b(); // jQuery methods are called on selectors
或者,您可以在global object
中创建一个新对象,以存储应用程序的所有属性和功能。如果您计划在其中存储非jQuery代码并且您的函数不打算作为jQuery插件发布,那么它尤其有用:
window.magicApp = {}
window.magicApp.fun_a = function( ) {
console.log('fun a');
}
// somewhere in your code
magicApp.fun_a(); // works!