Tag: jQuery的

编写jquery静态util方法

我理解扩展jquery.fn以将自定义函数放在jquery对象的原型链上的概念,但在我的情况下,我的一些util不需要连接到选择器。 我基本上是在寻找静态方法。 所以我想知道在jquery对象上直接编写静态方法作为util方法的任何缺陷。 例: jquery.myMethod = function(arg){ …… } $.myMethod(“blabla”); 谢谢

jQuery没有在文档加载时返回正确的主体高度 – 他们的bug还是我的?

我用的时候 $(document).ready(function() { var bodyHeight = $(“body”).height(); console.log(bodyHeight); }); 我得到一个真正的身体高度数字。 然后我跑了 $(“body”).height(); 在控制台中,并获得正确的高度。 关于$(document).load这样的事情似乎很可疑……是的,我的CSS工作正常,所有这些,我的bug,chromes或jQuery是什么?

写入data- *属性并使用jQuery获取它.data()

可能重复: jQuery .data()不更新DOM 我在使用on属性时遇到问题。 我写了一小组方法来发送api调用。 标记是这样的: unfollow 并有一个这样的事件捕获: $(document).on(‘click’,’.action’, function(){ var t={}; t.args={}; t.args.global_id=$(this).data(‘global-id’); t.global_id=t.args.global_id; t.action=$(this).data(‘action’); t.identifier=t.action + ‘_v2’; alert(‘here is action: ‘ + t.action); api_post_v1(t); }); api_post_v1正确发送呼叫。 有一些代码可以处理回调,它将标记设置为: follow 这个代码就像: $foo=$(‘.action[data-action=unfollow][data-global-id=’+global_id+’]’); $foo.attr(‘data-action’,’follow’); 关键是数据动作。 我想要调用上面的事件处理程序来说它是’跟随’,但它说它仍然是’取消关注’。 顺序如下: 加载页面,data-action =’unfollow’ 点击这个,api调用得到,你没有关注这个用户; 回调设置data-action =’follow’ 再次单击此值,数据操作将回显为“取消关注”而不是“关注” 我怎么能告诉jQuery刷新这个事件的绑定? 我认为这就是$(document).on的作用。 谢谢

Jquery:单击突出显示/取消突出显示表行

我希望我的脚本突出显示我选择的行并且效果很好,但是当选择/突出显示行时,如果选择了另一行,我希望它“取消选择/取消选择”。 我该怎么做呢? 这是用于选择行的当前代码,它取消选择,但仅当我再次单击同一行时: $(“.candidateNameTD”).click(function() { $(this).parents(“tr”).toggleClass(“diffColor”, this.clicked); }); Html表 ID Navn Email <tr id="” class=”newCandidatesTableTr”> <div id="” class=”candidateNameTD”> <div id="” class=”acceptb” style=”cursor: pointer; border: 1px solid black; width: 150px; text-align: center;”>Godkend

使用JQuery获取TD的值

我有一个非常简单的表,只有两行。 我在想什么是从ID“row2”获得TD值的最佳方法。 hello world 这是我的尝试: $(document).ready(function(){ var r=$(“#testing”:row2).val(); alert(r); }); 但我看不到任何消息弹出。 如果我想指定表ID和TD ID,我该怎么做JQuery代码? var r=$(“#testing”:row2).text(); var r=$(“#testing”).children(“row2”).text();

使用什么而不是Object.keys()?

我需要在Jquery中找到可以在IE8和真实浏览器中工作的东西。 我是Jquery的新手,以下是我在现代浏览器中运行的代码: $(‘#FIELD_’+office_id).on(‘change’,function(){ offices = $(this).val(); for(var i=0; i<=Object.keys(southland.address).length;i++){ if(offices == Object.keys(southland.address)[i]){ address = southland.address[offices]Object.keys(southland.address[offices])[0]]; } } 其中southland.address来自外部arrays。 这在Chrome,IE10和FF中是完美的,我能为IE8做些什么吗?

插入的jquery HTML呈现为原始文本

我有奇怪的情况,我有那个字符串 lorem<br/><br/>ipsum<br/><br/>a<br/>b<br/><br/>c 这是一个div: $(‘div.desc’).html(that_string); 要么 $(‘div.desc’).html($.parseHTML(that_string)); 但在这两种情况下,它都被渲染为原始文本: loremipsumabc 代替 lorem ipsum a b c 为什么?

如何检测鼠标位置是否hover

我有这个讨论 ,指出如何制作铅笔工具。 如何使用铅笔工具检测鼠标是否在绘制的区域/点/图像上hover? 然后,它将通过在其上创建一个圆圈来突出显示起点和终点。

如果在keyup上添加了char,则不会触发输入中的Google Chrome更改事件

$(‘input#not-gonna-work’).bind({ keyup: function(){ console.log(‘Typed a key’); $(this).val($(this).val() + ‘.’);// try with any other char }, change: function(){ console.log(‘I\’ma changed input’); } }); 我在这个简化的jsfiddle示例中暂存了这个bug。 与此错误相关的问题是我有一个正在构建的财务应用程序,如果输入数据发生更改,我需要显示“保存更改”按钮。 因为我需要在keyup立即插入千位分隔符(如果需要),这个bug真的让我烦恼并破坏了这个function。 要重现它,请转到jsfiddle示例,在第一次输入时打开控制台中的chrome类型, keyup事件将被正确触发,而不是使用制表符或单击其外部的非焦点输入,并且不会触发change事件。 对其他输入执行相同操作并将触发change 。 我在Firefox中对此进行了测试,它按预期工作。 我正在使用的Chromium版本是14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10 和 尝试直接从Chrome网站新安装的Google Chrome 15.0.874.106。 我可以在change事件上插入分隔符,但由于用户将输入大量7位以上的数字,因此在键入时插入分隔符会更好。

jQuery:如何检查鼠标是否在元素上

我有一个绑定mouseenter事件的延迟函数: $(window).load(function(e) { var $container = $(‘.container’); $container.mouseenter(function(e) { //do something }); … }); 问题是当load事件触发时,鼠标可能已经在元素上,因此在绑定mouseenter事件之前。 我可以通过在页面加载处理程序的末尾放置一些代码来解决这个问题,以便一次性检查鼠标是否在元素内并手动触发mouseenter事件: // check if the mouse is inside $container if(mouse is inside $container) $container.mouseenter(); 如何检查鼠标是否在load事件中的元素上? 我尝试了$container.is(‘:hover’)但它不起作用。