我正在尝试在jQuery Masonry完成定位魔术时执行回调函数,以防止代码中出现无格式内容.
但是,出于测试的目的,我使用的是一个根本没有调用的简单警报.
var $jigsaw = $('#jigsaw');
$jigsaw.imagesLoaded( function(){
$jigsaw.masonry({
columnWidth : 180,
isAnimated : !Modernizr.csstransitions,
isResizable : true,
itemSelector : '.piece'
}, function(){
alert('Completed');
});
});
Run Code Online (Sandbox Code Playgroud)
我可能会遗漏一些明显的东西,但任何帮助都会受到赞赏
我有这个jQuery函数可以工作.除了微小的变化外,每两行是相同的.我怎样才能缩短它?
$(".c1").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c2").fadeIn("slow", function() {
$(".c2").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c3").fadeIn("slow", function() {
$(".c3").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c4").fadeIn("slow", function() {
$(".c4").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c5").fadeIn("slow", function() {
$(".c5").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c6").fadeIn("slow", function() {
$(".c6").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c7").fadeIn("slow", function() {
$(".c7").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c8").fadeIn("slow", function() {
$(".c8").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c9").fadeIn("slow", function() {
$(".c9").delay(5000).fadeOut("slow", function() {
$("#phone").addClass("c1").fadeIn("slow");
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
});
Run Code Online (Sandbox Code Playgroud) 我有一个简单的Ajax调用,并希望计算返回的数据数组中的元素.但是.length()在某种程度上不起作用.你知道更好的方法吗?谢谢!
我的代码到目前为止:
$.ajax({
async: true,
type: 'post',
cache: false,
url: 'location.php',
data: {myJson: dataArray},
dataType : 'json',
success: function(data){
var ArrayContent = data.length();
if(ArrayContent == 2) {
$('#Result').removeClass('loading').empty();
$('#PlzInput').val(data[0]);
$('#Result').html('Ihr Standort: '+data[1]);
} else if( ArrayContent == 1 ) {
$('#Result').removeClass('loading').empty();
$('#Result').html(data[0]);
}
}
});
Run Code Online (Sandbox Code Playgroud) 我有以下情况.在伪类的构造函数中,我将click事件附加到元素.当事件被触发时,我想从回调函数引用到设置事件的对象.
伪类构造函数的代码
function MyClass(){
this.myClassAttribute = "A class attribute";
// here `this` refers to the object
$("span").click(function(){
// here `this` refer to a matched element, i.e. "span"
// How to get the value of `myClassAttribute`?
});
}
Run Code Online (Sandbox Code Playgroud)
如何在没有全局变量的情况下引用对象?
$('#drop_area').droppable({
accept: '.draggable',
drop: on_element_drop
});
function on_element_drop(event, ui){
}
<div class="draggable">
<img src="test.png" alt="3">
</div>
Run Code Online (Sandbox Code Playgroud)
我试图找出如何从传递给'on_element_drop'的'ui'参数中获取此可拖动div中图像的'alt'属性.有人知道怎么做吗?
我最接近的是:
ui.helper.context.children[0].attr('alt');
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我有点困惑如何确定从另一个调用多次异步函数何时完成上一次迭代的调用:
function MainAsyncFunction(callback) {
for (var i = 0; i < 10; i++) {
SubAsyncFunction(function(success) {
if (i >= 10 && success) { // THIS IS WRONG?!
callback(true); // happens too early
}
});
}
};
function SubAsyncFunction(callback) {
SubSubAsyncFunction(function() {
callback(true);
});
}
Run Code Online (Sandbox Code Playgroud)
我正在做的是调用Google Distance Matrix服务,该服务有25个目的地的限制,因此我不得不拆分我的目的地数组以多次调用此服务,但我不明白它何时完成.
在代码的主要部分,我可以看出MainAsyncFunction中的循环的第二次迭代在进行回调时尚未完成.
我认为我的问题是在处理JavaScript中的异步函数时我没有理解事件的顺序......请解释一下如何正常实现主题.
我需要mvFinishItUp()在满足两个条件时执行特定的功能.更具体地说,一个条件是另一个条件的回调成功$.ajax是代码的正常流程,直到它到达函数.有点这样:
$.ajax({
url: mv_finalUrl,
success: function (data) {
mvFinishItUp(data);
},
dataType: 'html'
});
/* here a lot more code, with animations and some delays */
mvFinishItUp(data) {
/* My function code */
/* But this code must only run after it has been called via the call back
and after all the other code has been ran as well */
}
Run Code Online (Sandbox Code Playgroud)
因此,如果ajax回调更快,或者相反,函数必须等待所有代码.有关如何实施这一点的任何想法?
我愿意改变脚本代码的整个概念,因为我相信ajax和函数本身之间的松散代码应该转到函数中...
让我们假设您在for循环中创建一些ajax请求,如下所示:
$(function(){
for(var i=0;i<10;i++){
$.ajax({
url : '/',
success : function(){
console.log('callback '+i+' fired!');
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
当然,回调每次都会记录'callback 10 fired',因为回调是异步执行的.问题是:你怎么知道哪个回调被解雇了?
在的文档.on()中,参数给出如下:
Run Code Online (Sandbox Code Playgroud).on( events [, selector ] [, data ], handler )
关于参数handler(即回调函数):
处理程序
类型:
Function( Event eventObject [, Anything extraParameter ] [, ... ] )事件触发时执行的函数。该值
false也可以作为简单执行 操作的函数的简写return false。
什么时候有extraParameter参数传递给回调函数?有很多别名,.on()但我还没有遇到过任何传递超过eventObject参数的别名。
我想this在$ .get()的回调中使用关键字.我的代码结构是
var myObject = {
get: function() {
$.get(server,data,function(data,status) {
this.callback();
});
},
callback: function() {
}
}
Run Code Online (Sandbox Code Playgroud)
我不想用myObject.callback().有没有办法完成使用this.callback()?
jquery-callback ×10
jquery ×9
javascript ×6
ajax ×3
arrays ×1
asynchronous ×1
callback ×1
count ×1
draggable ×1
fouc ×1
jquery-ui ×1
json ×1