Tag: dom

通知JSF服务器端有关Jquery / Ajax对(DOM)客户端状态所做的更改

使用基于组件的框架(如JSF),定义了一个复选框的组件: 生成的(x-html)代码如下所示: Number1 – 1 Number1 – 2 Number1 – 3 一个Jquery函数在一个事件上更改了该组件的状态(比如说值为“1”的框)(点击“按钮”): // or in $(document).ready(){} $(‘#button’).click(function(){ var $checkbox = $(this).find(‘#j_idt6:j_idt10:0’); $checkbox.attr(‘checked’, !$checkbox.attr(‘checked’)); }); 如何通知JSF端客户端状态发生了变化。 在这个级别,JSF仍然认为该复选框具有例如值0,而它现在具有值1.这导致状态不一致…… 我有什么选择? 我想到JSF对其他人(Rich-,Primes-,MyFaces)的AJAX支持,但我仍然坚持使用它,知道让我的组件更新,因为我正在构建一个具有许多function的富客户端(显示操作) ,Jquery UI小部件,Web远程处理,动态行为,Web服务,视觉效果等)。 应该严重操纵的DOM客户端状态和Jquery是必须的东西..所以它不能被抛在一边。 谢谢!

JQuery更新数据属性

请考虑以下相册示例。 专辑的第一页和最后一页是专辑传播的一半。 我设置attr(‘data-width’)和attr(‘data-width_correct’)进行比较 例如 – checkImageDimesions() //Define if first or last page if($(this).is(‘:first-child’) || $(this).is(‘:last-child’)) { $(this).find(‘img’).attr(‘data-height_correct’ , maxHeight); $(this).find(‘img’).attr(‘data-width_correct’ , maxWidth / 2); } else{ $(this).find(‘img’).attr(‘data-height_correct’ , maxHeight); $(this).find(‘img’).attr(‘data-width_correct’ , maxWidth); } 这可以按预期工作,使用正确的值更新数据。 我的下一步是如果width > width_correct我想添加一个resize类。 if($(this).find(‘img’).data(‘width’) > $(this).find(‘img’).data(‘width_correct’)) { $(this).addClass(‘resize’); } 调用此函数发生在jQuery .sortable()的成功。 在第一次排序时,这可以正常工作,但是在后续排序中,未正确resize的初始图像会保留.resize并且任何在width > width_correct上返回false的新图像都不会被指定resize 可排序 $(“#sortable”).sortable( { success: function(){checkImageDimension()} }

拖放并在dom中更改div的父级

在http://jqueryui.com/draggable/#snap-to中 如果我将div拖到“ snaptarget ”div。 拖动的div是否会显示在内部作为DOM子元素? 我在浏览器上点击f12并看到位置随着我的拖动而改变,但是显示拖动,丢弃的div的父级没有变化。 我认为同样可以使用droppable http://jqueryui.com/droppable/ 有没有办法检查并确定? 我确实想要这个function,因为我想将一个div拖到另一个div,然后知道该div的父级。

DOM没有满载?

当使用jQuery文档时,即$(document).ready(function() { }是否有可能DOM尚未完全加载? 我正在使用一些第三方工具(Telerik的网格)并设置了一个客户端模板来显示一个复选框,就像这样 。 码: .ClientTemplate(“<input type='checkbox' name='checkedRecords' value='’ />”) 我问的原因是我试图将事件连接到所有复选框以监视change : $(‘:input’).change( function () { alert(‘you fired!’); }); 我在Telerik网格代码之外手动设置了一个复选框,它连接到复选框更改,但telerik网格内的所有复选框都没有… 在那种情况下 – 是否有解决方法?

在Angular 2中操纵Dom

我正在创建一个角度为2的Web。我有一个Jquery代码,当单击一个自定义按钮时添加2个输入和1个删除按钮,因此,当用户单击删除按钮时,它会删除输入(操纵DOM)。 Jquery代码: //Adiciona campos extra nos sócios var campos_max = 10; //max de 10 campos var x = 1; // campos iniciais $(‘#add_field’).click (function(e) { e.preventDefault(); //prevenir novos clicks if (x < campos_max) { $('#listas').append('\ \ Nome sócio:\ \ *\ \ \ \ \ Participação (%):\ \ *\ \ \ \ \ ‘); x++; } […]

在JS / JQuery中通过DOM获取BR分隔文本?

我正在编写一个使用以下通用结构解析页面的greasemonkey脚本: (Account Name) (#IDNumber) (Rank) (Title) Statistics: blah blah etc. 我特意试图从中获取(标题)部分。 然而,正如您所看到的,它仅由标签引发,没有自己的ID,只是标签文本的一部分,并且该标签有大量其他文本与之关联它。 现在我正在做的是获取Center标签的innerHTML并使用正则表达式来匹配/([A-Za-z ]*) Statistics/ 。 这对我来说没问题,但感觉就好像有一个更好的方式从那里挑选那个特定的文本。 ……那么,还有更好的方法吗? 或者我应该向网站程序员抱怨他需要使该文本更容易访问? 🙂

浏览器文本框自动完成事件,何时发生?

如果我autocomplete=”off”我的上放置autocomplete=”off” ,浏览器有时会用可能/记住的数据填充它们。 什么时候在DOM负载生命周期中发生? 它似乎是在: $(function(){ alert(‘i happen before autocomplete’); }); 在表单自动完成之后是否会发生dom-load事件? 如果是这样,它是什么? 如果没有,嗯,我可以做什么来执行一些JS“在页面加载”,但在自动完成后? 解决方案需要跨浏览器 谢谢 安德鲁

将Straight JS转换为JQuery

我试图从last.fm API附加一些JSON数据, 我一直在几个阶段使用alert()来validationAPI是否正确解析,它是, 这让我得出结论getElementById()。appendChild()不起作用,下面是我设置的测试页面的URL: http://mutant-tractor.com/tabtest.html 所以从这个直接的JS转到JQuery我被告知是最好的方法,这就是说我对任何JQuery都没有任何线索,我的JS知识基于我已经完成的一些基本Java … 将它转换为工作JQuery有多简单/不简单? 我会对此表示赏心悦目,但我不知道该怎么做。 function calculateDateAgo(secAgo) { var agoString, agoRange, agoScaled; if(secAgo >= (agoRange = 60*60*24)) agoString = (agoScaled = Math.floor(secAgo/agoRange))+” “+(agoScaled>1?”days”:”day”) + ” ago”; else if(secAgo >= (agoRange = 60*60)) agoString = (agoScaled = Math.floor(secAgo/agoRange))+” “+(agoScaled>1?”hours”:”hour”) + ” ago”; else if(secAgo >= (agoRange = 60)) agoString = (agoScaled = […]

使用Javascript附加元素可以使用.innerHTML,但不能使用XML子节点

有可能更简单的方法来做到这一点,但我正在尝试一些新的东西。 基本要点是我希望在我的静态网站上每页每页有一个JS和一个jQuery附件。 我希望能够将元素附加到身体上,但也可以。 我的文件是: home.html的 eco.js window.addEventListener(“load”, function() { var ajax = new XMLHttpRequest(); ajax.onload = postdata; ajax.open(“GET”, ADDRESS, true); ajax.send(); } ); function postdata() { var xml = jQuery.parseXML(this.responseText); $(“head”).append(xml.querySelector(“head”).childNodes); } 和common.xml 但是,这不起作用(请求并成功检索common.xml)。 Chrome开发工具显示xml节点也成功附加到头部。 然而,该页面并未反映出这些变化,特别是css未被纳入。 但是,如果我改变了 var xml = jQuery.parseXML(this.responseText); $(“head”).append(xml.querySelector(“head”).childNodes); 至 $(“head”).append(this.responseText); (并修复common.xml以删除不需要的标记)然后页面反映更改。 谁能解释一下这里发生了什么? 谢谢!

将HTML添加到JQuery Isotope additems / insertitems第2部分

继续之后: 将HTML添加到JQuery Isotope additems / insertitems 我有布拉迪的: function makeDataSlide(slideId, imgSrc, slideTitle) { var slide = $(”); var gridItem = $(”); $(gridItem).append(”); $(gridItem).append(”+ slideTitle +”); $(slide).append(gridItem); return slide; } $(‘.button’).on( ‘click’, function() { var $items = [ makeDataSlide(8, ‘img/btn.png’, ‘XXXXX’), makeDataSlide(9, ‘img/btn.png’, ‘XXXXX’), makeDataSlide(10, ‘img/btn.png’, ‘XXXXX’), makeDataSlide(11, ‘img/btn.png’, ‘XXXXX’), ] $grid.isotope( ‘insert’, $items); }); 没有错误,但按钮没有做任何事情?