gpt4 book ai didi

javascript - 从 JS 运行 jquery 函数

转载 作者:行者123 更新时间:2023-11-30 10:04:05 25 4
gpt4 key购买 nike

很抱歉这个菜鸟问题,但今天对我来说没什么用。

我正在创建一个 Phonegap 应用程序并将 PushWoosh API 集成到我的应用程序中。收到推送通知后,我想再次运行之前的功能,以便更新数据。

Pushwoosh 有这样的 JS 功能:

document.addEventListener('push-notification',
function(event) {
var title = event.notification.title;
var userData = event.notification.userdata;
var notification = event.notification;

if (typeof(userData) != "undefined") {
console.warn('user data: ' + JSON.stringify(userData));
}

var object = JSON.parse(notification.u);

window.runPushFunctions(object.active, object.open); //Runs a jQuery function I have created..

}
);

现在 window.runPushFunctions 看起来像这样:

$(document).ready(function() {
window.runPushFunctions = function(active, open) {

if (active != null || active != undefined) {
$('.hubs-page').removeClass('hubs-active').hide().eq(active).show().addClass('hubs-active');
}

if (open == 2) {
$('html').addClass('hubs-opening');
}

//Trying to run functions from jQuery file that will get data from database and so on..
received();
sent();
checkFriends();

};
});

但由于某些原因我不能不运行 received()sent()checkFriends()

这些函数在它们自己的文件中是这样设置的:

(function($) {

'use strict';
function checkFriends () {
$.getJSON('url',function(data){
$.each(data,function(index,value){
//Do something with value
});
});
}

我按以下顺序包含文件:

file.js -> received(); sent();
file.js -> checkFriends();
file.js -> pushnotifications

任何帮助将不胜感激

最佳答案

正如这里的另一个答案所说,您正在限定方法定义的范围,因此在包含方法之外的任何地方都无法访问它们。

(function($) {

这是一个方法定义。无法在其外部访问在其中非全局声明的任何变量或函数。因此,您需要在其他地方定义函数或将它们设为全局函数以便访问。

如果您打算在其他地方定义它们,您只需将函数定义移动到同一文件的顶部,在 (function($) {})() 范围之外。

如果您改用全局定义,则需要稍微更改方法的定义行:而不是

function foo() { }

你需要

window.foo = function() { }

这会将匿名声明的函数分配给 window 范围内的对象,该范围可全局访问。然后你可以调用它使用

window.foo();

或者只是

foo();

因为它在 window 范围内。

关于javascript - 从 JS 运行 jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com