【发布时间】:2014-05-06 07:24:16
【问题描述】:
当用户单击本地赞按钮、fb 赞按钮或 Twitter 按钮时,我正在尝试使用“changeRating()”方法在我的数据库中添加“赞”。
但是当用户在 Firefox 中单击这些按钮时,我的“喜欢”并没有增加,在 Chrome 中一切正常。在 Firefox 中,它仅在 JQuery 开头的 alert 被激活时才有效?
jQuery(document).ready(function () {
//alert('test'); (when this is activated it works)
$(".fb-like").mouseup(function () {
var vraagIdToUpdate = $(".vraagid").attr("value");
if (vraagIdToUpdate != '') {
changeRating(vraagIdToUpdate);
}
});
FB.Event.subscribe('edge.create',
function (response) {
var vraagIdToUpdate = $(".vraagid").attr("value");
if (vraagIdToUpdate != '') {
changeRating(vraagIdToUpdate);
}
});
$(".twitter-share-button").mouseup(function () {
var vraagIdToUpdate = $(".vraagid").attr("value");
if (vraagIdToUpdate != '') {
changeRating(vraagIdToUpdate);
}
});
twttr.events.bind('click', function () {
var vraagIdToUpdate = $(".vraagid").attr("value");
if (vraagIdToUpdate != '') {
changeRating(vraagIdToUpdate);
}
});
$("#stemknop").click(function () {
//voeg event handler toe aan de click-functie op de link (die als className twitter-share-button heeft meegekregen)
var vraagIdToUpdate = $(".vraagid").attr("value");
//alert('gelukt');
$(this).css({ 'opacity': '0.4' });
if (vraagIdToUpdate != '') {
changeRating(vraagIdToUpdate);
}
});
function changeRating(vraagId) {
//Maak een JSON object aan met dezelfde property-name als ons Model classe
var shareModel = { vraagID: vraagId };
$.post("/api/ShareAPI/ChangeNumberOfShares", shareModel).success(function (result) { $('.aantalStemmen').text(result.newAantalShares) });
}
});
我知道当一些代码需要特定的东西时,可能有一些东西加载得太快或不存在...... alert() 导致我的代码“等待”,所以它确实有效。但我似乎无法找到导致此问题的代码。
编辑:我的 Firefox 控制台声明如下:
ReferenceError: FB 未定义 Vraag:143 ReferenceError: FB 未定义 定义 Vraag:247 Gebruik van getUserData() of setUserData() wordt 不再关注。 Gebruik in plaats daarvan WeakMap of 元素.数据集。 requestNotifier.js:64 "无效的应用程序 ID:必须是 表示应用程序 ID 的数字或数字字符串。” sdk.js:53 ""fb-root" div 尚未创建,自动创建"sdk.js:53" 否 回调传递给 ApiClient” sdk.js:53 错误:容器不是 定义格式+nl,default+nl,ui+nl,corechart+nl.I.js:130 Gebruik van getUserData() of setUserData() wordt niet meer ondersteund。格布鲁克 element.dataset 的 plaats daarvan WeakMap。 requestNotifier.js:64 Gebruik van getPreventDefault() wordt niet meer ondersteund。格布鲁克 在 plaats daarvan defaultPrevented。 jquery-1.8.2.js:3260 错误: 容器未定义
【问题讨论】:
-
可能是 FB.Event。或 twttr.events。
-
我猜代码是异步的,需要一些时间来加载,当你收到警报时,它会给浏览器额外的一秒时间在后台下载/执行
-
是的,我倾向于同意@crisbeto。确保在上面代码中调用的 javascript 之前加载 FB JS。
-
我应该如何强制此代码在该代码之前加载?
-
试试看一下 facbook API,很可能当所有东西都加载完毕后他们有回调
标签: javascript jquery html ajax firefox