我想知道是否有办法将字符串转换为jQuery对象并选择内部元素而不将整个字符串注入DOM并在那里操作它.谢谢.
如果可能的话,请给我转换的例子
<div id=a1></div>
<div id=a3></div>
Run Code Online (Sandbox Code Playgroud)
并从对象变量中选择a1.
我编写了很多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) 理想情况下适用于Oracle,MS SQL Server,MySQL和Posgress.
好吧首先,这是我非常基本的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) 我需要知道我的函数运行在哪个线程的上下文中,是主GUI线程还是某个工作线程.
我不能使用一个简单的解决方案将QThread指针存储在main函数中并将其与QThread :: currentThread()进行比较,因为我正在编写一个库而我无法访问main函数.我当然可以创建InitMyLibary()函数并要求库用户在GUI线程的上下文中调用它,但我真的反对这一点.
我正在评估MS云Windows Azure来托管3个完全分离的网站.
每个网站都有自己的数据库,它们没有连接,所以3个网站和3个数据库.
我的目标是优化启动项目的成本,并有可能按需扩大规模.
我想知道:
谢谢你的时间.
在MVVM(Model-View-ViewModel)模式中,ViewModel应该引用视图.我认为不应该.但是下面的场景应该如何处理呢?我有一个视图,其中有一个选项卡控件作为主容器,此视图的viewmodel实现了一个命令,用于向选项卡控件添加新选项卡.简单的方法是允许viewmodel引用视图,然后在命令实现中以编程方式将新选项卡添加到视图中的tabcontrol.这似乎是错的.我应该以某种方式将tabcontrol绑定到viewmodel,然后实现数据/控件模板以添加新选项卡.我希望这对某人有点意义:)
最初,当webbrowser刚刚加载到表单上时,它是空白的(即白色).一旦我们去了一个特定的网站,有没有办法让它再次变为空白.
我尝试过这些方法,但没有找到能够实现这一目标的方法.有另一种方式还是我错过了什么?
我需要旋转一个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)
如何缩小图像以使其不会被裁剪?或者还有另一种方式吗?
这里是一个真正的JQuery UI天才:我们有一个非常长的形式,按需加载部分(例如,当点击索引/导航时,或当我们在当前部分的边缘滚动时).
当我在当前查看的部分下面加载部分时,这不会影响当前滚动(即scrollTop)位置,但是当我在当前查看部分上方插入新部分时,它当然会将查看的内容推下来.
我们需要保持相对于当前部分的scrollTop位置.我们还需要在进行调整时避免显示跳跃/毛刺.
我想要任何实际上必须解决这个问题的人提出一些建议.重要的是屏幕不会出现故障,因此应避免将scrollTop同步到缓慢的DOM更新.
对拟议解决方案的建议或意见?是否有可以执行此操作的滚动替换?
如果你无法解决它,但认为它值得解决,请考虑提升,这样我就可以获得大笔奖金!:)
jquery ×4
javascript ×3
c# ×2
html ×2
asp.net ×1
azure ×1
c++ ×1
common-lisp ×1
database ×1
dom ×1
forms ×1
lisp ×1
multi-tenant ×1
mvvm ×1
postgresql ×1
qt ×1
rotation ×1
scroll ×1
scrolltop ×1
silverlight ×1
sizzle ×1
sql ×1
typescript ×1
wpf ×1