Tag: javascript

使用jQuery覆盖JavaScript中的复选框

帮助unit testing复选框行为。 我有这个页面: $(function() { $(‘Make Hidden’).appendTo(‘body’); $(‘Was Hidden’).appendTo(‘body’); $(‘#makeHidden’).click(function() { var isChecked = $(this).is(‘:checked’); if (isChecked) { $(‘#displayer’).hide(); } else { $(‘#displayer’).show(); } return false; }); }); 这不起作用,因为return false; 在单击处理程序中。 如果我删除它,它的效果很好。 问题是如果我将click函数拉出它自己的函数并用qunit对它进行unit testing,如果没有return false;则它将无法工作return false; [编辑]使用@ patrick的答案我的结果是: 火狐: 手动测试玩具 – 好。 unit testing – 很好。 生产应用程序的手动测试 – 很好。 IE浏览器: 手动测试玩具 – 失败。 unit testing […]

使用jQuery在链接上重新触发click事件

我有一个页面(asp.net),我在其中捕获链接的单击事件。 然后我做一些脏检查并向用户显示一个对话框, $(function() { var clickedLink; $(‘.checkdirty’).click(function(event) { if(isDirty == false){ return true; } clickedLink = $(this); $(‘#dirtysave-dialog’).dialog(‘open’); return false; }); }); 你想失去你的改变是/否等 $(‘#dirtysave-dialog’).dialog({ bgiframe: true, autoOpen: false, height: 125, width: 425, modal: true, title: “You have unsaved changes, do you want to continue and loose changes?!!”, buttons: { “Yes”: function() { isDirty = false; […]

获取元素的所有计算样式

我希望得到所有应用于元素的样式,例如你在右上角看到的Chrome开发者工具中称为“Computed Style”我希望获得所有列表是否有任何其他简单的方法来获取所有列表和属性 源代码 我试过这个javascript但它不是我想要的,我必须手动编写css属性 我只是希望早期或默认情况下应用于元素的所有样式

jQuery如何将CSS应用于所选文本

我正在尝试将CS​​S应用于所选文本。 我尝试了以下,但它不起作用。 我正在使用Firefox。 $(document).keyup(function(){ savedRange = selection.getRangeAt(0); $(savedRange).wrap(”); }); 我也试过了 savedRange = selection.getRangeAt(0); $(savedRange).css(‘color’, ‘red’); 我可以使用execcommand使用contentEditable执行此操作,但execcommand应用html标记而不是内联样式。 例如: 而不是style=”font..” 。 我需要应用内联样式而不是已弃用的html标记。 我想使用jQuery css()属性来应用样式。

IE与window.location.href不兼容

我正在使用来自AJAX发布请求的回调来导航到新页面,但它无法在Internet Explorer上运行。 我的代码如下: $.ajax({ type: “POST”, url: phpUrl, data: data, async: false, success: function() { if (navigator.appName == ‘Microsoft Internet Explorer’){ window.location.href(“/step2.php”)} else{ window.location.href = “/step2.php”} }, dataType:’json’ }); 这在FF / Safari / Chrome上工作正常,但是当我在IE上测试它时它不起作用。 有没有更好的方法重定向到新页面? 我正在使用async:false因为如果我没有使用回调,我的数据没有在Chrome / Safari上加载,因为页面只会在POST请求完成之前更改。

Javascript中的iframe和内存管理

我有链接将页面加载到iframe中。 我一直在使用谷歌Chrome的内存堆分析器监视内存中数据的累积,我注意到内存中有一些泄漏。 我加载了页面并拍摄了第一张快照,最多加起来为2.69 MB 。 我点击了将页面打开到iframe的链接,并拍了另一张快照,总共给了我14.58 MB 。 我使用以下jquery代码段删除了iframe: $(‘#myframe’).unbind(); $(‘#myframe’).remove(); /* * By the way, I also tried $(‘#myframe > *’) as a selector. * It still didn’t work. Even if it would, it doesn’t look like a viable solution to me. * It looks too resource intensive. * * I forgot to mention […]

Moment.js如何获得一个月的周? (谷歌日历风格)

我正在使用Moment.js,这很棒。 我现在遇到的问题是,我无法弄清楚如何获得某个特定日期的月份。 我只能在Moment js docs中找到“一年中的一周”。 例如,如果我选择今天的日期(2014年12月2日),我想知道这个日期是在本月的第二个星期,因此,它是本月的第二个星期三。 有任何想法吗? 编辑:我想有些澄清是必要的。 我最需要的是一个月中某一天的第n个数字。 例如,(来自评论)2014年2月1日将是该月的第一个星期六。 2014年2月3日将是本月的第一个星期一,尽管它在技术上是本月的第二周。 基本上,谷歌日历的重复function究竟如何分类天。

jQuery.data和jQuery._data(下划线数据)有什么区别?

在浏览源代码时,我注意到’toggle’应该使用jQuery._data来存储元素的状态。 我检查了chrome中的jQuery.cache对象,发现元素的数据对象下面还有另一个对象,它由jQuery一词前面加上一个我猜是唯一标识它的数字。 但是,我没有看到关于元素状态的数据。 简单{olddisplay: ‘block’} 。 关于jQuery._data的目的以及它本身如何工作的任何线索? 我一整天都在盯着源头……请不要告诉我查看来源。 我的眼睛和大脑会感谢你。

使用基于像素宽度的jQuery截断文本

我正在尝试使用jquery编写一个快速函数来计算html页面上字符串的像素宽度,然后截断字符串直到达到理想的像素宽度… 但是它不起作用(文本没有截断)…… 这是我的代码: function constrain(text, original, ideal_width){ var temp_item = (”+ text +”); $(temp_item).appendTo(‘body’); var item_width = $(‘span.temp_item’).width(); var ideal = parseInt(ideal_width); var smaller_text = text; while (item_width > ideal) { smaller_text = smaller_text.substr(0, (smaller_text-1)); $(‘.temp_item’).html(text); item_width = $(‘span.temp_item’).width(); } var final_length = smaller_text.length; if (final_length != original) { return (smaller_text + ‘…’); } else […]

滚动时将每个div视为“页面”

我有一个我正在构建的页面,我希望在滚动(向上或向下)页面时滚动到下一个div(每个div是窗口高度的100%)。 并在那里“固定”,直到你再次滚动。 我可以在这里看到我想要完成的一个例子: http://testdays.hondamoto.ch/ 您会注意到,当您向下滚动时,它会自动将您移动到下一个“div”。 我尝试过的: 使用jQuery .scroll事件结合: function updatePosition() { if(canScroll) { var pageName; canScroll = false; var st = $(window).scrollTop(); if (st > lastScrollTop){ // downscroll code if(pageNumber 0) { pageNumber–; } pageName = ‘#’ + getPageToScrollTo().id; $(‘body’).animate({ scrollTop: $(pageName).offset().top }, 2000, function() { canScroll = true; }); } lastScrollTop = st; } […]