Tag: javascript

为所有哈希链接/调用的滚动位置添加自动偏移量

我有以下问题: 就像在Facebook上一样,我在页面顶部有一个始终可见的菜单栏( position: fixed; )。 当我现在单击我的页面上的哈希链接(或在URL中加载带有哈希的新页面)跳转到页面上的某个元素时,浏览器总是将此元素滚动到页面的最顶部,这意味着之后,元素位于顶部菜单栏的后面。 我想添加一些Javascript(jQuery或普通Javascript),自动为此滚动位置添加(负)偏移量,以便在单击链接或加载页面时链接元素位于顶部菜单栏的正下方 。 但我不只是想将事件监听器添加到所有处理这个问题的链接。 我还想要一个有效的解决方案,如果页面使用浏览器的地址栏在URL中加载了哈希部分(或者链接到url末尾带有哈希的不同页面)。 您可以在http://loud.fm/tmp/details.html找到我的页面的clickdummy。 单击左侧图像右上角的评论气泡跳转到评论。 如果您的浏览器窗口足够小,则应在列出注释之前跳转到灰色的“COMMENTS”标题和分页。 在点击跳转链接后,我希望标题和分页显示在顶部菜单的正下方 。 你能帮我解决这个问题吗? 提前致谢! 🙂 此致,René

将onSuccess返回值的回调提升为Caller Function返回值

我有一个javascript函数调用generics函数来对服务器进行ajax调用。 我需要从ajax调用的回调函数中检索结果(true / false),但我得到的结果总是“未定义”。 没有我所有逻辑的generics函数的超简化版本将是: function CallServer(urlController) { $.ajax({ type: “POST”, url: urlController, async: false, data: $(“form”).serialize(), success: function(result) { if (someLogic) return true; else return false; }, error: function(errorThrown) { return false; } }); } 调用它的函数将是这样的: function Next() { var result = CallServer(“/Signum/TrySave”); if (result == true) { document.forms[0].submit(); } } “result”变量总是“未定义”,调试它我可以看到正在执行回调函数的“return true”行。 有关为什么会发生这种情况的任何想法? […]

如何在javascript中处理undo / redo事件?

我试图检测表单输入的值是否使用Javascript和JQuery更改。 不幸的是,我发现JQuery的$(elem).change()不足,因为它只会在elem失去焦点时触发更改事件。 我必须立即知道表单输入值的变化。 为此,我将与输入值的可能变化相关的事件缩小到了keyup , paste , cut , undo和redo 。 但是,javascript和JQuery似乎都没有办法处理撤消或重做。 var onChange = function () { alert(‘Checking for changes…’); }; $(this).off(‘keyup’).on(‘keyup’, onChange); $(this).off(‘paste’).on(‘paste’, onChange); $(this).off(‘cut’).on(‘cut’, onChange); $(this).off(‘undo’).on(‘undo’, onChange); // undo ? $(this).off(‘redo’).on(‘redo’, onChange); // redo ? 我在Google / JQuery中搜索了undo / redo事件,但没有找到任何有用的信息。 有人可以帮忙解决如何处理撤消/重做事件吗?

覆盖html5validation

我正在使用一个简单的登录表单,有两个字段: Log in 对于现代浏览器,会自动触发validation。 但是,如果javascript可用,我想接管html5表单validation,并自己处理所有内容。 我想自动validation’onblur’(仅受影响的字段),并且我想在点击’submit’时validation所有字段。 onblur事件工作正常,但是当按下“提交”时,不会触发标准的“提交”事件。 但是,会触发“无效”事件; 但仅适用于第一个无效事件。 告诉浏览器忽略所有与HTML5相关的validation并接管整个过程的好方法是什么?

在iframe父窗口中触发click事件

Parent Window $(function() { $(‘#mainp’).live(‘click’, function(e) { alert(“hi”); e.preventDefault(); }); iframeindex来源: aa $(function() { $(‘.test’).click(function(e){ $(‘#mainp’, window.parent.document).css(‘color’, ‘red’).trigger(‘click’); e.preventDefault(); }) }); CSS正在应用于父窗口链接但单击事件未获得触发器。 如何将触发事件发送到父窗口。

在两个div元素中具有相同id的两个元素与其他id:updated是否正常是正常的

我知道,这两个元素不能拥有相同的id。 但事实是这样,在我的项目中,我有两个在其他div中具有相同id的元素,就像这样 和css: #div1 #loading { some style here… } #div2 #loading { another style here… } 对我来说很好,但也许这样做不被推荐吗? 谢谢 UPDATE 是的,我知道,我可以使用课程,并且强烈建议这样做,但我想知道这种id的使用是否存在任何潜在的风险? 我想不,因为当我写的时候 $(“#div1 #loading”)…它成为一个独特的元素。 不是吗? 最后更新 如果您有理由这样做,请使用建议的原则! ;)

使用逗号的Javascript数字格式

我正在尝试格式化数字,因此它们在每3个数字之间都有逗号。 然而,它非常小故障,一旦达到8个数字就无法工作。 我已将所有代码放在下面的jsfiddle中: function commaSeparateNumber(val){ val = val.replace(‘,’, ”); var array = val.split(”); var index = -3; while (array.length + index > 0) { array.splice(index, 0, ‘,’); // Decrement by 4 since we just added another unit to the array. index -= 4; } return array.join(”); }; $(document).on(‘keyup’, ‘.test’, function() { var value = $(this).val(); […]

在jquery / js中将数组中的元素插入表中

我有一个名为reservations.js的js文件,在这个文件中我有一个保留数组,如: var reservations = [ { “HotelId”: “01”, “HotelName”: “SPA”, “ReservNum”: “0166977”, “Guest Name”: “Jonny”, “Room”: null, “Type”: “SUIT”, “Rooms”: “1”, “Board”: “BB”, “Status”: “IH”, “Pax”: “2,0,0,0”, “Arrival”: “07/08/12”, “Departure”: “09/08/12”, “AgentDesc”: “FIT”, “AgentCode”: “FIT”, “Group”: null, “Balance”: “0”, “Requests”: “”, “Remarks”: null, “Fit/Group”: “FIT”, “ReturnGuestName”: “”, “StatusColor”: “LightCoral” }, { “HotelId”: “01”, “HotelName”: “SPA”, […]

使html5video在结束时转到第一帧?

我有一个简单的videohtml5标签,绑定到“已结束”事件: $(‘#video’).show().trigger(“play”).bind(‘ended’, function () { //code } 由于我通过按钮点击“显示”和“隐藏”这个,我想让它返回到最后一个函数的第一帧,所以它会在下一次出现时从头开始(现在它从结束,当它从最后一帧到第一帧时会引起令人讨厌的闪烁)。 这有可能与jQuery? 提前致谢!

JSON使用JQuery获取请求(跨域)

我正在尝试向我无法控制的域上的API发出简单的JSON get请求。 我的代码很简单: $(document).ready(function () { $.ajax({ type: ‘GET’, url: ‘http://pubapi.cryptsy.com/api.php?method=marketdatav2’, success: function (data) { console.log(data); } }); }); 但由于这是跨域请求,因此我在Chrome控制台中收到此错误: XMLHttpRequest cannot load http://pubapi.cryptsy.com/api.php?method=marketdatav2. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://fiddle.jshell.net’ is therefore not allowed access. 当我尝试添加参数dataType: ‘jsonp’ ,Console将返回此错误: 未捕获的SyntaxError:意外的令牌: 但是当我检查Chrome中的网络选项卡时,我看到在Headers下,状态代码是200 OK,我可以在Response选项卡中看到完整的响应,但是控制台仍然显示“Unexpected Token:”错误和JQuery JSON请求仍然失败。 这是JS Fiddle链接: http : //jsfiddle.net/6Qcq2/您可以看到相同的结果 我试过在http://www.hurl.it上运行url,它显示状态OK和响应,所以我一定做错了。 我整天都在试图弄清楚如何解决这个问题。 […]