小编Hal*_*991的帖子

使用jQuery检测元素何时靠近页面底部

我有一个脚本可以解决页面顶部元素列表的距离,但我不确定如何检测它与底部的距离.当它击中底部(好吧,在底部之前20px)我想发射一个事件并淡出它:

$(window).on('load resize scroll', function () {
    $('.links__item').each(function () {
        if (($(this).offset().top - $(window).scrollTop()) < 20) {
            $(this).stop().fadeTo(100, 0)
        } else {
            $(this).stop().fadeTo('fast', 1)
        }
    })
})
Run Code Online (Sandbox Code Playgroud)

如果有人有任何建议,非常感谢.我正在遍历各个元素以检测它,所以当其中一个从底部击中20px时,我想淡出它.谢谢!

javascript jquery

14
推荐指数
1
解决办法
1万
查看次数

在AngularJS中切换数据模型以获得动态选择菜单

我想要做的是有三个不同的<select>菜单,它们都将被绑定到相同的数据中.更改第一个选择菜单,将更改菜单2和3的数据.

这是我的控制器内部:

$scope.data = [
        {
            "id" : "0",
            "site" : "Brands Hatch",
            "buildings" : [
                { "building" : "Building #1" },
                { "building" : "Building #2" },
                { "building" : "Building #3" }
            ],
            "floors" : [
                { "floor" : "Floor #1" },
                { "floor" : "Floor #2" },
                { "floor" : "Floor #3" }
            ]
        },{
            "id" : "1",
            "site" : "Silverstone",
            "buildings" : [
                { "building" : "Building #4" },
                { "building" : "Building #5" …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

10
推荐指数
1
解决办法
8023
查看次数

窗口对象(window.something = something)在JavaScript中做了什么?

我不知道你是否需要看到完整的代码,但我看到一些插件可以做到这一点:

window.dataValidate = dataValidate
Run Code Online (Sandbox Code Playgroud)

这是否将"dataValidate"添加到窗口对象,或者它是如何工作的?

javascript

6
推荐指数
1
解决办法
957
查看次数

使用JavaScript设置“自动对焦”属性无效

我正在编写一个小插件,该插件将封装自动聚焦设置,但是当我使用JavaScript动态添加属性时,它不会自动聚焦页面,这很奇怪。有没有办法解决?

HTML:

<input type="text">
Run Code Online (Sandbox Code Playgroud)

JS:

document.querySelector('input').setAttribute('autofocus', 'autofocus');
Run Code Online (Sandbox Code Playgroud)

不做:

document.querySelector('input').setAttribute('autofocus', 'autofocus').focus();
Run Code Online (Sandbox Code Playgroud)

jSFiddle:http : //jsfiddle.net/wPUNN/

javascript html5

6
推荐指数
2
解决办法
1万
查看次数

使用JavaScript从HTML5 data-*属性获取JSON对象

这是我的HTML:

<input type="text" data-setup='{ "method" : "checkbox" }'>
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的JavaScript:

var a = document.querySelectorAll('[data-setup]')
for (var i=0;i<a.length;i++) {
    alert(a[i].getAttribute('data-setup'));
}
Run Code Online (Sandbox Code Playgroud)

然后警告:

ALERT: { "method" : "checkbox" }
Run Code Online (Sandbox Code Playgroud)

但是我如何访问JSON"方法"?我想基本上能够提醒"复选框"这个词.任何帮助赞赏.

javascript json

6
推荐指数
1
解决办法
8014
查看次数

将脚本添加到 window 对象的最佳方法?

我在 JavaScript/jQuery 插件开发中看到了一个熟悉的模式(Modernizr 使用了第一个示例),通过这种模式,函数很好地包装在 IIFE 中,并在window对象上全局定义。我想问的是,通过执行以下操作使您的插件/脚本在全球范围内可访问是否是个好主意:

window.myPluginName = (function (window, document, undefined) {
  // Plugin logic
})(window, document);
Run Code Online (Sandbox Code Playgroud)

我问这个是因为一些脚本/插件需要在调用它们的 DOM 中访问,或者在文档/文件中的其他地方访问。在插件内部,我有时也会看到:

(function (window, document, undefined) {
  window.myPluginName = function () {
    // Plugin logic
  }
})(window, document);
Run Code Online (Sandbox Code Playgroud)

甚至这个:

(function (window, document, undefined) {
  var myPluginName = function () {
    // Plugin logic
  }
  window.myPluginName = myPluginName;
})(window, document);
Run Code Online (Sandbox Code Playgroud)

我真的对设置背后的差异很感兴趣,如果有人比我有更多的经验,我会很友好地提供一些最适合开发的建议。谢谢!

javascript window

5
推荐指数
1
解决办法
5606
查看次数

JSHint"糟糕或不必要的逃脱".双斜线开始/结束有关系吗?

我将一些RegExps作为字符串存储在Object中,但是收到上面的错误消息.

我相信这是因为它们没有前缀/后缀/ - 因为我将它们运行到一个新的RegExp()构造函数中,因为脚本允许用户定义RegExps,所以我希望它们都是动态的.

var patterns = {
    email: '^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$',
    url: '[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)',
    number: '^[-+]?[0-9]*\.?[0-9]+$',
    empty: '^\\s*$'
};
Run Code Online (Sandbox Code Playgroud)

有上面的字符串.

要修复它们,我可以这样做和/ /它们:

var patterns = {
    email: '/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/',
    url: '/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/',
    number: '/^[-+]?[0-9]*\.?[0-9]+$',
    empty: '/^\\s*$/'
};
Run Code Online (Sandbox Code Playgroud)

但是,当new RegExp()他们确实调用时,他们会这样做(例如):

var reg = new RegExp(patterns.empty);
/**
 * reg = //^\\s*$//
 */
Run Code Online (Sandbox Code Playgroud)

双斜线.我的问题作为一个RegExp初学者,是做这些双斜线很重要吗?它可以用另一种方式修复.JSHint抱怨,因为它不是一个"真正的"RegExp.

我也可以从字符串中删除它们并存储为真正的RegExps,但我再次需要它们是动态的.任何帮助赞赏.

javascript regex

5
推荐指数
1
解决办法
3750
查看次数

使用jQuery检查来自AJAX响应的JSON字符串

我在我的联系表单上使用jQuery来构建我们正在构建的Web应用程序,我从服务器获得JSON响应:

{"success": true}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的jQuery:

$('.contact-form').on('submit', function(e) {

            // Prevent submitting
            e.preventDefault();

            // Loading from data-* attr
            var $submit = $('#contact-submit');
            $submit.html($submit.data('text'));

            // Form data
            var form      = $(this);
            var post_url  = form.attr('action');
            var post_data = form.serialize();

            // Ajax call
            $.ajax({
                type    : 'POST',
                url     : post_url,
                data    : post_data,
                dataType: 'json',
                success: function(){

                },
                error: function(){

                }
            });

        });
Run Code Online (Sandbox Code Playgroud)

在"成功"jQuery方法之前,我从来没有"检查过"JSON响应,我可以帮上这个吗?我正在寻找一种方法来检查我得到的响应,如果显示"是",我将显示"已发送成功"消息.

ajax jquery json

2
推荐指数
1
解决办法
1万
查看次数

如何在循环外移动函数

JSHint尖叫着应该在循环之外声明函数,我只是对如何做到这一点感到困惑?具体部分:self.onchange = function(){...}

这是循环:

for ( var j = 0; j < checkz.length; j++ ) {
    var self = checkz[j];
    self.onchange = function () {
        for ( var z = 0; z < psswrd.length; z++ ) {
            psswrd[z].type = self.checked ? 'text' : 'password';
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

当我将它移到外面并分配它时,该功能会因为'self'变得不确定而中断.任何建议表示赞赏

javascript

2
推荐指数
1
解决办法
286
查看次数

JavaScript三元运算符使用说明

我正在编写一个小脚本,使用三元运算符来处理短手'if'语句.代码如下:

self.checked ? psswrd[z].type = 'text' : psswrd[z].type = 'password';
Run Code Online (Sandbox Code Playgroud)

这基本上说,如果选中输入,则输入类型为"text",否则为密码.我有一种感觉,这是我在重复自己的意义上的错误.

理想情况下,我想做这样的事情:

psswrd[z].type ? 'text' : 'password';
Run Code Online (Sandbox Code Playgroud)

但是我如何检查它的'if'部分?我是这个三元方法的新手,所以解释会有很长的路要走,谢谢.

完整循环,如果需要:

for ( var j = 0; j < checkz.length; j++ ) {

            var self = checkz[j];
            self.onchange = function () {
                for ( var z = 0; z < psswrd.length; z++ ) {

                    self.checked ? psswrd[z].type = 'text' : psswrd[z].type = 'password';

                }
            }

        }
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
84
查看次数

使用`in`比object.prop有什么好处?

我们都看到该功能检测到执行以下操作:

var touch = function () {
  return 'ontouchstart' in window;
};
Run Code Online (Sandbox Code Playgroud)

但我想知道使用in运算符是否有任何其他好处超过这样(节省几个字节)?

var touch = function () {
  return !!window.ontouchstart;
};
Run Code Online (Sandbox Code Playgroud)

使用还有其他好处in吗?

javascript

0
推荐指数
1
解决办法
61
查看次数

标签 统计

javascript ×10

jquery ×2

json ×2

ajax ×1

angularjs ×1

html5 ×1

regex ×1

window ×1