小编Gon*_*ing的帖子

将字符串转换为jQuery对象并选择内部元素

我想知道是否有办法将字符串转换为jQuery对象并选择内部元素而不将整个字符串注入DOM并在那里操作它.谢谢.

如果可能的话,请给我转换的例子

<div id=a1></div>
<div id=a3></div>
Run Code Online (Sandbox Code Playgroud)

并从对象变量中选择a1.

html javascript jquery dom

17
推荐指数
2
解决办法
3万
查看次数

是否可以创建导航祖先的自定义jQuery选择器?例如a:最近或:父母选择器

我编写了很多jQuery插件,并且我一直使用自定义jQuery选择器,:focusable:closeto提供常用的过滤器.

例如:focusable看起来像这样

jQuery.extend(jQuery.expr[':'], {
    focusable: function (el, index, selector) {
        return $(el).is('a, button, :input[type!=hidden], [tabindex]');
    };
});
Run Code Online (Sandbox Code Playgroud)

并像任何其他选择器一样使用:

$(':focusable').css('color', 'red');  // color all focusable elements red
Run Code Online (Sandbox Code Playgroud)

我注意到没有一个可用的jQuery选择器可以导航回祖先.我认为这是因为它们的设计遵循了向下钻取的基本CSS选择器规则.

以此示例:找到具有焦点的输入的标签:

$('input:focus').closest('.form-group').find('.label');
Run Code Online (Sandbox Code Playgroud)

我需要用于插件的等效类型的复杂选择器,因此将这样的选择器作为单个字符串提供是有用的(因此它们可以作为插件的选项提供).

例如:

$('input:focus < .form-group .label');
Run Code Online (Sandbox Code Playgroud)

要么

$('input:focus:closest(.form-group) .label');
Run Code Online (Sandbox Code Playgroud)

注:请假设更复杂的操作和祖先导航需要(我知道这个特殊的例子是可以做到的has,但这并不能帮助).

例如它还需要支持这个:

options.selector = ':closest(".form-group") .label';

$('input').click(function(){
    var label = $(this).find(options.selector);
});
Run Code Online (Sandbox Code Playgroud)

是否可以扩展jQuery选择器来扩展搜索行为(而不仅仅是添加更多的布尔过滤器)?如何扩展自定义搜索行为?

更新:

看起来一个完整的自定义选择器(比如<)就不像在jQuery的Sizzle解析器中添加伪选择器那么容易.我目前正在查看这个Sizzle文档,但我发现jQuery版本不一致.(例如Sizzle.selectors.order,运行时不存在属性).

作为参考,jQuery的商店Sizzle在其jQuery.find性能和Sizzle.selectors它的jQuery.expr属性.

到目前为止我添加了这个:

 jQuery.expr.match.closest …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-selectors sizzle

17
推荐指数
1
解决办法
4393
查看次数

16
推荐指数
2
解决办法
8210
查看次数

将jQuery插件转换为TypeScript

好吧首先,这是我非常基本的jQuery插件

(function ($){
    $.fn.greenify = function (options) {
        var settings = $.extend({
            // These are the defaults
            color: '#556b2f',
            backgroundColor: 'white'
        }, options);
}(jQuery));

$('a').greenify({
    color: 'orange'
}).showLinkLocation();
Run Code Online (Sandbox Code Playgroud)

基本上所有这一切都是使用提供的元素更改文本颜色和背景颜色.现在我要做的是将这个简单的插件转换为TypeScript

我尝试了一些东西,最接近的是这个.

打字稿

/// <reference path="../../typings/jquery/jquery.d.ts" />

module Coloring
{
    interface IGreenifyOptions
    {
        color: string;
        backgroundColor: string;
    }

    export class GreenifyOptions implements IGreenifyOptions
    {
        // Fields
        color: string;
        backgroundColor: string;

        constructor(color: string, backgroundColor: string)
        {
            this.color = color;
            this.backgroundColor = backgroundColor;
        }
    }

    export class Greenify
    {
        // Fields
        element: JQuery;
        options: …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery typescript

16
推荐指数
2
解决办法
1万
查看次数

Qt库中的GUI线程检测

我需要知道我的函数运行在哪个线程的上下文中,是主GUI线程还是某个工作线程.

我不能使用一个简单的解决方案将QThread指针存储在main函数中并将其与QThread :: currentThread()进行比较,因为我正在编写一个库而我无法访问main函数.我当然可以创建InitMyLibary()函数并要求库用户在GUI线程的上下文中调用它,但我真的反对这一点.

c++ qt multithreading

15
推荐指数
1
解决办法
5408
查看次数

Windows Azure我可以在同一个Extra小实例或Small实例上运行多个WebSite

我正在评估MS云Windows Azure来托管3个完全分离的网站.

每个网站都有自己的数据库,它们没有连接,所以3个网站和3个数据库.

我的目标是优化启动项目的成本,并有可能按需扩大规模.

我想知道:

  • 如果可以在同一个实例上托管3个网站(超小实例或小实例).
  • 如果可以在同一个Sql Azure数据库上托管3个数据库(所以我会使用我的3个数据库的SQL存储总量)或者每个网站数据库我必须支付一个SQL Azure实例.

谢谢你的时间.

asp.net azure multi-tenant cloud-hosting azure-sql-database

14
推荐指数
3
解决办法
4801
查看次数

MVVM中的ViewModel应该引用View吗?

在MVVM(Model-View-ViewModel)模式中,ViewModel应该引用视图.我认为不应该.但是下面的场景应该如何处理呢?我有一个视图,其中有一个选项卡控件作为主容器,此视图的viewmodel实现了一个命令,用于向选项卡控件添加新选项卡.简单的方法是允许viewmodel引用视图,然后在命令实现中以编程方式将新选项卡添加到视图中的tabcontrol.这似乎是错的.我应该以某种方式将tabcontrol绑定到viewmodel,然后实现数据/控件模板以添加新选项卡.我希望这对某人有点意义:)

wpf design-patterns mvvm

13
推荐指数
3
解决办法
7844
查看次数

如何使web浏览器控件在c#中显示为空白?

最初,当webbrowser刚刚加载到表单上时,它是空白的(即白色).一旦我们去了一个特定的网站,有没有办法让它再次变为空白.

我尝试过这些方法,但没有找到能够实现这一目标的方法.有另一种方式还是我错过了什么?

c# visual-studio

13
推荐指数
2
解决办法
2万
查看次数

Silverlight旋转并缩放位图图像以适合矩形而不进行裁剪

我需要旋转一个WriteableBitmap并在它被裁剪之前向下或向上缩放.

我的当前代码将旋转,但如果高度大于宽度,则会裁剪边缘.

我想我需要扩展?

 public WriteableBitmap Rotate(WriteableBitmap Source, double Angle)
        {
            RotateTransform rt = new RotateTransform();
            rt.Angle = Angle;

            TransformGroup transform = new TransformGroup();
            transform.Children.Add(rt);

            Image tempImage2 = new Image();
            WriteableBitmap wb;
            rt.CenterX = Source.PixelWidth / 2;
            rt.CenterY = Source.PixelHeight / 2;
            tempImage2.Width = Source.PixelWidth;
            tempImage2.Height = Source.PixelHeight;
            wb = new WriteableBitmap((int)(Source.PixelWidth), Source.PixelHeight);
            tempImage2.Source = Source;
            tempImage2.UpdateLayout();

            wb.Render(tempImage2, transform);
            wb.Invalidate();

            return wb;

        }
Run Code Online (Sandbox Code Playgroud)

如何缩小图像以使其不会被裁剪?或者还有另一种方式吗?

c# silverlight rotation windows-phone-7 windows-phone

13
推荐指数
1
解决办法
7299
查看次数

在当前查看元素上方插入新部分时保持scrollTop(无毛刺)

这里是一个真正的JQuery UI天才:我们有一个非常长的形式,按需加载部分(例如,当点击索引/导航时,或当我们在当前部分的边缘滚动时).

当我在当前查看的部分下面加载部分时,这不会影响当前滚动(即scrollTop)位置,但是当我在当前查看部分上方插入新部分时,它当然会将查看的内容推下来.

我们需要保持相对于当前部分的scrollTop位置.我们还需要在进行调整时避免显示跳跃/毛刺.

我们正在考虑的选项:

  1. 加载内容并按加载项的高度调整scrollTop位置(这可能会因为DOM更改可能比scrollTop调整慢得多而出现故障).
  2. 在屏幕外加载新部分,测量高度.然后插入该部分并按该量调整scrollTop(由于DOM更新,可能仍然是故障).
  3. 将要加载的部分设置为较大的固定高度(例如100/1000像素)并调整scrollTop以匹配,以便当前视图不会移动.将内容加载到该部分,然后测量实际的新内容高度并删除固定高度,同时调整scrollTop以匹配实际高度.
  4. 不要使用传统的滚动,而是编写一个自定义滚动条,它保持自己的相对偏移并将现有的部分分开以适应新的部分.然后问题就是编写自定义滚动条替换(对于像我们正在使用的nicescroll这样的东西).
  5. 暂时将当前查看的部分的位置更改为绝对(从屏幕偏移计算的位置),以将其从流程中取出.更新其后面的父滚动窗口内容,然后在重新计算新的scrollTop后再次使查看的部分相对.
  6. 还有什么我们还没有想过的?

我想要任何实际上必须解决这个问题的人提出一些建议.重要的是屏幕不会出现故障,因此应避免将scrollTop同步到缓慢的DOM更新.

对拟议解决方案的建议或意见?是否有可以执行此操作的滚动替换?

如果你无法解决它,但认为它值得解决,请考虑提升,这样我就可以获得大笔奖金!:)

forms jquery scroll dynamic-loading scrolltop

13
推荐指数
1
解决办法
1670
查看次数