Tag: 扩展

将复杂的jquery css选择器转换为用于缓存的上下文

在反馈之后,完全重写问题。 我有以下标记: Title bla … 我可以访问: Title bla … 使用: $(‘body > *:not(div#do-not-modify-me)’); 我这样做,所以我可以得到身体的所有内容,除了具有id“do-not-modify-me”的div。 现在,让我们说我想构建一个函数,让另一个程序员选择正文中的任何东西,就像使用jquery选择一样。 另一个程序员不应该修改div#do-not-modify-me,但他也不应该关心它。 $(‘body > *:not(div#do-not-modify-me)’)将被调用很多时间,所以我们将缓存它。 这个想法是: // TEST CODE windows.new_body = $(‘body > *:not(div#do-not-modify-me)’); function select(selector) { return $(selector, windows.new_body); } 所以其他程序员应该能够做到: // TEST RESULT CODE select(“p”).css(“color”, “red”); 它会在身体的所有 中显示红色,但不会包含在div#do-not-modify-me中。 TEST CODE不起作用,因为目前它对上下文结果的子项应用css(),而不是自己的结果。 EG: select(“p”).css(“color”, “red”); 表现如下: $(‘body > * p :not(div#do-not-modify-me)’).css(“color”, […]

Jquery阅读更多切换

我希望在HTML网站上添加一个“阅读更多”切换按钮,我发现的一切只能在一个或两个浏览器中运行,或者不是我正在寻找的东西。 我只是希望有一段带有’read more’underneith的文本,当点击’read more’更改为’read less’时,div会扩展以显示所有文本。 它还需要能够包含多个 和一个列表。 如果动画显示平滑滚动会很好,如果可能的话会在’read more’之前显示一定数量的字符而不是div高度。 有人可以帮忙吗? 提前致谢!

jQuery:List扩展页面加载

我一直在寻找一些非常简单的东西: 如何在页面加载时使用动画扩展侧面导航 ,但我通常去的所有教程网站似乎都没有。 我能找到的最接近的是这个jQuery示例: http : //codeblitz.wordpress.com/2009/04/15/jquery-animated-collapsible-list/ 我已经成功地删除了列表: $(function(){ $(‘li’) .css(‘pointer’,’default’) .css(‘list-style’,’none’); $(‘li:has(ul)’) .click(function(event){ if (this == event.target) { $(this).css(‘list-style’, (!$(this).children().is(‘:hidden’)) ? ‘none’ : ‘none’); $(this).children().toggle(‘slow’); } return false; }) .css({cursor:’pointer’, ‘list-style’:’none’}) .children().hide(); $(‘li:not(:has(ul))’).css({cursor:’default’, ‘list-style’:’none’}); }); Collapsable List Demo A – F G – M George Kent Technology Centre Hampshire Park George Kent Technology Centre […]

Jquery扩展现有function

我正在寻找一种方法来扩展现有的Jquery函数,为其提供更多的选项/参数。 我想要使​​用的是$ .ajax但这适用于任何jquery函数。 我希望能够调用这样的函数: $.adv_ajax() 这将是$ .ajax函数的扩展版本,如下所示: $.adv_ajax({ custom_parameter: “abc”, //my custom one url: “test.html”, context: document.body, success: function(){ $(this).addClass(“done”); } });

通过传递带有路径和值的字符串来扩展JavaScript对象

有没有一种通过传递字符串和值来扩展JavaScript对象的简单方法? 基本上我需要这样的东西: myObject = {} var extendObj = function(obj, path, value){ } var path = “abc”, value = “ciao”; extendObj(myObject, path, value); console.log(myObject.abc) //will print “ciao”

如何使用jQuery扩展实现多重inheritance

根据道格拉斯·克罗克福德的说法,我可以使用像http://javascript.crockford.com/prototypal.html这样的东西(稍微调整一下)……但我对jQuery的做法很感兴趣。 使用$ .extend是一种好习惯吗? 我有4节课: var A = function(){ } A.prototype = { name : “A”, cl : function(){ alert(this.name); } } var D = function(){} D.prototype = { say : function(){ alert(“D”); } } var B = function(){} //inherits from A B.prototype = $.extend(new A(), { name : “B” }); var C = function(){} //inherits […]

扩展jQuery核心的用处

我发现了一种扩展核心jQuery init函数的方法(这是在你使用$()或jQuery()函数时随时调用的函数)。 使用普通代理模式是不可能的,但以下代码使其工作: var origInit = jQuery.fn.init; jQuery.fn.init = function(selector, context, rootjQuery) { if (some condition) { //custom code here, possibly returning some other jQuery object than //what jQuery would normally return } return origInit.call(jQuery.fn, selector, context, rootjQuery); } 我的问题是这可能有用,因为我意识到我最初使用它来缓存选择器的意图是有问题的(因为它会影响其他插件的行为 – 我最终使用单独的函数进行缓存)。 所以我想我会分享这个方法,我也很想知道其他潜在用途的想法。 我想也许它可以用来支持某种类型的自定义选择器,虽然我不确定到底需要什么,因为jQuery已经提供了很多选择器。

在$ .mobile中覆盖JQuery Mobile方法的正确方法

我正在研究的JQuery Mobile应用程序在软键盘启动时往往会吓坏。 我已经实现了一个解决方案并且效果很好,但是我必须直接编辑jquery.mobile-1.2.0.js来完成它。 我更愿意将我的更改保存在jquery.mobile.customizations.js文件中,该文件扩展了jQuery Mobile。 我试图做以下事情但没有成功: delete $.mobile.getScreenHeight; $.mobile.last_width = null; $.mobile.last_height = null; $.mobile.getScreenHeight = function() { // My modified version } 我在$.mobile.getScreenHeight添加了alert语句,加上原来的$.mobile.getScreenHeight 。 我确实看到我的自定义方法的警报被触发,但有时,它也会触发原始函数中的警报。 有没有人知道在$ .mobile中覆盖方法的正确方法,还添加了两个新属性? (有关原始问题的完整详细信息在window.resize中,因虚拟键盘导致jquery mobile出现问题 ) 更新: @elclanrs – 我试图在没有运气的情况下实现下面的代码。 我也尝试过交换第二个和第三个参数。 每当我运行代码时,它会触发我的扩展getScreenHeight,但它会触发基本的getScreenHeight。 (我掏空了原来的getScreenHeight并在里面发出警报。警告永远不应该开火。 开放思想! $.mobile = $.extend( {}, $.mobile, { last_width: null, last_height: null, getScreenHeight: function() { // My code… […]

脚本分析DIV高度非function

我有以下脚本似乎无法正常工作。 var height = $(‘#sidebar1’).height(); var pageHeight = $(window).height(); if ((height) > 600) { alert(‘haha’); } 对这个脚本的不可接受的结果是对pageHeight而不是600而不是它,但是即使使用600,我也无法使用它。 我只能得出结论,这与div: #sidebar1是一个浮动的棒元素。 这是它的CSS。 .sidebar { float: right; width: 190px; padding-top:8px; } 该脚本是一个负载的一部分,其中div: #sidebar1的高度随着内容的加载而扩展,基于表单中的选项。 有任何想法吗, 奇妙 编辑:从包含警报作为元素的高度,我们现在可以看到高度卡在’430’,即使它似乎继续扩大。 有任何想法吗

你能在jQuery中扩展val()函数吗?

有没有办法在jQuery中扩展val()函数。 基本上,我想要做的是设置一个类变量,如果有内容被动态输入到输入中。 通常会是这样的 var thisVal = ‘Hello World’; $(‘#myInput’).val(thisVal).addClass(‘dark’); 如果有值,则告诉val()函数始终将类“dark”添加到输入中,如果它为空则将其删除。 可能?