我想知道是否有可能触发一个事件后,使用滚动条或鼠标滚轮(或带有触摸屏设备上轻扫)当一个页面的滚动.
基本上,我想检测用户何时停止滚动,以便我可以加载AJAX,而不是在滚动时加载.
似乎jQuery's .scroll()每次用户滚动时都会触发,并且一直有事件触发似乎很笨拙.有没有这样的东西.onScrollAfter(),同义词.onMouseUp()?
我想知道这是否可行(或者如果函数已经存在)而不使用框架,尽管我会考虑一个; 特别是jQuery.
我正在研究UnderscoreJS如何实现他们的each/forEach
//somewhere up top:
var breaker = {};
//then the each function
var each = _.each = _.forEach = function (obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
if (iterator.call(context, obj[i], i, obj) === breaker) return;
}
} else {
for (var key in obj) {
if …Run Code Online (Sandbox Code Playgroud) 我用这个样本回答了一个关于闭包的问题:
function Constructor() {
var privateProperty = 'private';
var privateMethod = function(){
alert('called from public method');
};
return {
publicProperty: 'im public',
publicMethod: function(){
alert('called from public method');
},
getter: privateMethod
}
}
var myObj = new Constructor();
//public
var pubProp = myObj.publicProperty;
myObj.publicMethod();
myObj.getter();
//private - will cause errors
myObj.privateProperty
myObj.privateMethod
Run Code Online (Sandbox Code Playgroud)
一位用户评论我的回答说:
此外,如果您的函数显式返回一个对象,那么使用new调用它并不是一个好习惯,因为这会产生误导 - 如果使用new,您希望结果是Constructor的一个实例
我通常使用new创建对象.但为什么这不是一个好的做法?似乎使用new而不使用new返回相同的东西.从闭包创建对象的正确方法是什么?
我是jQuery的新手,我只是试图将一个布尔值传递给一个函数.我尝试了各种修改,但仍然无法正常工作?
我期待警报被解雇
isTrue(true);
function isTrue(boolean isNot){
if(isNot){
alert('true');
}
}
Run Code Online (Sandbox Code Playgroud) 下午好,
我正在寻找一种在样式之间切换的方法:
例:
我有两个样式(类),一个使段落变红,另一个使段落变蓝.我只想使用JQuery来调用样式,而不是自己保存样式.
因此,当我单击一个按钮时,段落变为红色,当我再次单击时,它变为蓝色.
同样,我宁愿将样式分开并给出类名,并在两者之间切换JQuery.
我已经搜索了网络,但不断提出显示/隐藏示例,其中样式嵌入到JQuery函数中.
任何想法将不胜感激!
奥维马斯
大家好!这就是我所做的,正如我所提到的,我只是试图在两种风格之间切换.一种风格做了一些事情,例如:使文本变红或改变图像,而另一种风格使另一种事情发生.
感谢每一位耐心的人.你们都有所作为.
我在JQuery Cook Book中找到了答案.第3章事件处理页面69.以下是代码:
$(document).ready(function() {
$('.normalStyle').click(function(){
$(this).toggleClass('newStyle');
});
});
Run Code Online (Sandbox Code Playgroud) 我已在此sitepoint页面和quirksmode页面中读到有关新:empty伪类的信息.
Sitepoint表示,即使附加了动态内容,空样式仍然会生效.值得注意的是,firefox就是这样做的人.
Quirksmode说当它填充一些元素或文本时,它会丢弃空状态.此站点上的演示可在我的浏览器中运行(chrome 19).所以我假设只有firefox会出错.
但是我在我的插件中有这段代码,它动态填充一个带有项目的列表,它似乎不起作用,这里是一个附加列表项的小提琴,即使你点击按钮,项目也不会出现,直到您尝试在控制台中调试它(当您单击<li>元素树中时,它们会神奇地出现).
为什么会发生这种情况,是否有一种"强行抛弃"空洞风格的工作?
我知道还有其他方法可以做我在小提琴中做的事情(目前正在做其中一种"其他方式"),但这种:empty方法要容易得多.
更新:
添加了删除项目按钮.删除最后一项时,列表应该消失 - 仍然不起作用.嗯..我会尝试检查另一个浏览器.
固定
临时修复/替代使用:empty和display:none是使元件具有零width,height,borders,margins,和paddings.另外,position:absolute将其从流动中移除.
我已经阅读了为什么它更好以及它是如何实现的.但我真正理解的是它是如何打破循环引用的呢?.
它是如何打破参考圈的?
$(div1).data('item', div2);
$(div2).data('item', div1);
Run Code Online (Sandbox Code Playgroud)
例如,上面的div指向彼此,它是如何被阻止的?我有预感,但我只是想确定我的预感是否正确.
我想知道如何只刷新我网站中的特定元素,而不是整个网页?我正在谈论的元素是一个加载非常慢的Flash应用程序,可能会遇到连接超时.我想让用户只刷新该元素/ falsh应用程序.我怎么做?下面我有一个Ajax函数来更新HTML元素,但不知道如何将它应用到我的情况.
<head>
<script type="text/javascript">
function loadXMLDoc() {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "ajax_info.txt", true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv">
<h2>Let AJAX change this text</h2>
</div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
Run Code Online (Sandbox Code Playgroud) 好吧,我已经多次读过内联元素永远不应该包含块元素.我同意,这有问题,之后会变得混乱.但我发现它是执行以下操作的唯一解决方案:
我正在尝试创建一个模仿Metro UI"tiles"的HTML模板(是的,是Windows 8中的那个).瓷砖是使用<li>元素制作的.现在,问题是我希望tile(整个<li>标签)可以点击,但正确的HTML告诉我你不能用一个内联元素包围一个块元素.此外,你不能围绕<li>一个<a>.有没有任何方法这样做而不违反HTML的规则?
我使用这个相对简单的代码:
var height = help ? 'minus' : 'plus';
var prop = $('#properties');
if(height == 'minus'){
prop.height(prop.height() -= 206);
} else {
prop.height(prop.height() += 206);
}
Run Code Online (Sandbox Code Playgroud)
在添加/减少的两行上都失败了!有任何想法吗?