我有Backbone.Marionette.ItemView呈现一些内容.当呈现内容时,我想应用一个jQuery插件,它将视图的一部分转换为带滚动条的容器.
滚动条完全用javascript实现,初始化时必须检查滚动容器的高度以及容器内容的高度.
如果内容高于容器,则应启用滚动条.
虽然这听起来很简单,但我遇到了一个奇怪的问题:
如果我直接在onRender回调中初始化我的滚动条插件,似乎认为.scroll-container元素的高度为0,maxHeight为0.
如果我将初始化代码包装在0ms超时内,但一切都按原样运行,.scroll-container元素的height属性由jQuery正确返回,滚动条插件工作得很好.
onRender: function() {
var that = this;
setTimeout(function() {
that.onLayout();
var $scrollContainer = that.$el.find('.scroll-container'),
scrollPane = new ScrollPane($scrollContainer, {
maxHeightProperty: 'maxHeight',
scrollUpButton: false,
scrollDownButton: false
});
}, 0);
},
Run Code Online (Sandbox Code Playgroud)
我假设问题发生是因为浏览器在执行onRender回调时没有完成实际呈现新插入的html.
这个假设是否正确?如果是这样,我在正常情况下使用0ms超时的解决方案是否可靠?
function slide()
{
if($('.current').is(':last-child')){
$('.current').removeClass('.current');
$('#imgholder').first().addClass('.current');
$('#imgholder').animate({left: '3920px'});
}
else{
$nxt=$(".current");
$(".current").removeClass("current");
$nxt.next().addClass("current");
$('#imgholder').animate({left: '-=980'},{duration: 'slow', easing: 'easeOutBounce' });
}
}
var loop_handle= setTimeout("slide()",'3000');
Run Code Online (Sandbox Code Playgroud)
我已将此代码放在标题部分中,而setTimeout只运行一次
我有一个代码,需要在延迟说5000毫秒后执行.目前我使用的是setTimeout但它是异步的,我希望执行等待它的返回.我尝试过使用以下内容:
function pauseComp(ms)
{
var curr = new Date().getTime();
ms += curr;
while (curr < ms) {
curr = new Date().getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
但我想延迟的代码是使用raphaeljs绘制一些对象,并且显示器根本不是平滑的.我正在尝试使用doTimeout插件.我只需要延迟一次,因为延迟和要延迟的代码都在循环中.我没有要求身份证,所以我没有使用它.例如:
for(i; i<5; i++){ $.doTimeout(5000,function(){
alert('hi'); return false;}, true);}
Run Code Online (Sandbox Code Playgroud)
这等待5秒钟,然后给出第一个Hi,然后连续循环迭代在第一个之后立即显示警报.我想要它做的是等待5秒再次提醒警报等待然后提供警报等等.
任何提示/建议表示赞赏!
我是角度框架的新手.这是我的场景,我想在一段时间后更改我的$ scope.variable,所以我使用了javascript setTimeout方法.
$scope.variable = 'Previous';
setTimeout(function(){
$scope.variable='NEXT';
},3000);
Run Code Online (Sandbox Code Playgroud)
这段代码对我不起作用.我曾经$apply()使这个代码工作.
后来我才知道angular本身有一个$ timeout服务,可以做同样的工作.
$scope.variable = 'Previous';
$timeout(function () {
$scope.variable = 'NEXT';
}, 2000);
Run Code Online (Sandbox Code Playgroud)
我怎样才能比较$timeoutjavascript 的服务性能setTimeout?
我们为什么要用$timeout而不是setTimeout??
请给我一些使用它的例子和理由,它显示了性能.
谢谢 :)
假设我这样做
setTimeout(foo, 0);
...
setTimeout(bar, 0);
Run Code Online (Sandbox Code Playgroud)
我可以确定foo会在开始执行之前吗?如果不是0,我会使用1,10或100的超时来表示条形码?
简单的实验表明,在超时值相等的情况下,超时目标的执行顺序与setTimeouts本身相同,但依赖此行为是否安全?
我必须使用至少2个setTimeouts和1个setInterval.这是否依赖于所使用的浏览器或javascript引擎?
排序的问题说,这一切-有哪个不一样的功能的JavaScript函数的setTimeout()的PHP?我搜索过php.net,我似乎找不到任何...
我有一个jquery函数,我需要在Iframe中打开网站后调用它.
我想在iframe中打开一个weblink,打开它后我需要调用下面的函数.那我该怎么做?
这是我的功能:
<script type="text/javascript">
$(document).ready(function(){
$("#<%=Button1.ClientID%>").click(function (event) {
$('#<%=TextBox1.ClientID%>').change(function () {
$('#various3').attr('href', $(this).val());
});
$("#<%=Button2.ClientID%>").click();
});
})
function showStickySuccessToast() {
$().toastmessage('showToast', {
text: 'Finished Processing!',
sticky: false,
position: 'middle-center',
type: 'success',
closeText: '',
close: function () {
}
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是我在IFrame中打开链接的按钮:
<a id="various3" href="#"><asp:Button ID="Button1"
runat="server" Text="Button" OnClientClick="Button2_Click"/></a>
Run Code Online (Sandbox Code Playgroud)
实际上这是我所拥有的简单页面:

这就是信息

我正在 next.js 应用程序中制作一个简单的动画。
let flipInterval = useRef();
const startAnimation = () => {
flipInterval.current = setInterval(() => {
setIsFlipping((prevFlipping) => !prevFlipping);
}, 10000);
};
Run Code Online (Sandbox Code Playgroud)
因为flipInterval.current我收到“类型‘超时’不能分配给类型‘未定义’”。所以我检查了如何使用超时类型,我看到人们正在使用,但那不起作用。
let flipInterval = useRef<typeof window.settimeout>();
Run Code Online (Sandbox Code Playgroud)
我也通过了号码useRef<number>()我收到“类型‘超时’不能分配给类型‘数字’”
这也不起作用
let flipInterval = useRef<typeof window.setInterval>();
Run Code Online (Sandbox Code Playgroud) 为什么我不能setTimeout在javascript对象中使用?
Message = function () {
...
...
this.messageFactory = ...
this.feedbackTag = document.getElementById('feedbackMessages');
this.addInfo = function (message) {
var info = this.messageFactory.createInfo(message); // create a div
this.feedbackTag.appendChild(info);
setTimeout('this.feedbackTag.removeChild(info)', 5000);
// why in here, it complain this.feedbacktag is undefined ??????
};
}
Run Code Online (Sandbox Code Playgroud)
感谢Steve的解决方案,现在如果代码如下所示它将起作用...因为之前'this'实际指向setTimeOut中的函数,它不能重新发送消息.
Message = function () {
...
...
this.messageFactory = ...
this.feedbackTag = document.getElementById('feedbackMessages');
this.addInfo = function (message) {
var info = this.messageFactory.createInfo(message); // create a div
this.feedbackTag.appendChild(info);
var _this = this;
setTimeout(function() { _this.feedbackTag.removeChild(info); }, …Run Code Online (Sandbox Code Playgroud) settimeout ×10
javascript ×7
jquery ×2
angularjs ×1
animation ×1
backbone.js ×1
call ×1
function ×1
marionette ×1
next.js ×1
php ×1
reactjs ×1
typescript ×1