我维护了几个运行SQL Server 2000和2005的旧站点.在我的旧XP机箱上,我使用SQL Server企业管理器来访问它们.
我现在在Windows 7的盒子上.该产品是否仍可供下载/安装,是否可在Windows 7上运行?我似乎找不到该特定组件的下载.
或者Windows 7有替代品吗?我尝试安装SQL Server 2008 Manager Express,但是在Windows 7中途失败了.我确实在Virtual Box中运行了XP,因此如果我能找到安装它的位置,可以使用Enterprise Manager.
我想要完成的任务:我想在现有DIV之后添加一个DIV并为其指定一个特定的类.
我从这开始:
var myClass = "thisIsMyClass";
$(this).after("<div></div>").addClass(myClass)
Run Code Online (Sandbox Code Playgroud)
问题是myClass被添加到$(this)而不是新创建的DIV.
所以我尝试了一下:
var myClass = "thisIsMyClass";
$(this).after("<div class='" & thisIsMyClass & "'></div>")
Run Code Online (Sandbox Code Playgroud)
但是jQuery也不喜欢这样.
但是,我能做到这一点:
$(this).after("<div class='thisIsMyClass'></div>")
Run Code Online (Sandbox Code Playgroud)
使用该语法jQuery是可以的.当然,我失去了将其作为变量传递的能力.
我猜我做的事情显然是错的.但我很难过这是什么.
我坚持找出使下拉菜单键盘可访问的逻辑.
HTML的结构如此(为了清晰起见,使用额外的类名称):
<ul>
<li class="primaryMenuItem">
<a href="">Link 1</a>
<ul class="popUpMenu">
<li><a href="">Sub Link 1</a></li>
<li><a href="">Sub Link 2</a></li>
</ul>
</li>
<li class="primaryMenuItem">
<a href="">Link 2</a>
<ul class="popUpMenu">
<li><a href="">Sub Link 1</a></li>
<li><a href="">Sub Link 2</a></li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
链接1和链接2,当悬停时,将显示子菜单列表(下拉菜单).我有一些jQuery和jQuery hoverIntent插件可以正常工作.
问题是这只适用于鼠标.
接下来的挑战是通过键盘使其工作.
我可以轻松地将焦点事件添加到顶级链接,然后触发辅助菜单:
$('ul.primaryMenuItem a:first').focus([call showMenu function])
Run Code Online (Sandbox Code Playgroud)
这很好.
要关闭菜单,一个选项是,当打开另一个菜单时,检查是否已经打开另一个菜单,如果是,请关闭它.
这也很好.
但是,如果你打开了最后一个菜单,那么它就会失败.由于您没有标记到另一个菜单,这个菜单保持打开状态.
挑战在于弄清楚如何/何时关闭菜单以及需要的逻辑(jQuery)来弄清楚它.理想情况下,当焦点位于页面上的元素上时,我会关闭菜单,而不是任何菜单的子元素.
从逻辑上讲,我正在寻找这个:
$('li.primaryMenuItem').blur([close $(this).find('ul.popUpMenu'))
Run Code Online (Sandbox Code Playgroud)
但是,您不能这样做,因为LI实际上没有焦点,而是其中的锚标记.
有什么建议?
更新:
也许是一个更好/更简单的方式来提问:
通过jQuery,有没有办法'观察'看焦点是否移动到特定对象的所有孩子之外?
给定此示例标记(假设在.outer和之间有一个随机数量的元素.inner:
<div class="outer">
<div>
<div>
<div class="inner"></div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我可以设置jQuery来选择外部和内部div这样:
$outer = $('.outer');
$inner = $outer.find('.inner')
Run Code Online (Sandbox Code Playgroud)
工作良好.
但是,假设我想允许无限制地嵌套这个逻辑,所以我可能会这样:
<div class="outer"> div a
<div class="inner"> div b
<div class="outer"> div c
<div class="inner"> div d </div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在那种情况下,当选择div a via时.outer我希望只与div b匹配.换句话说,我想排除嵌套.outer祖先的祖先.
我想在它们的嵌套级别中包含外部和内部的parings.
我希望.filter()可以把它拉下来,但是想不出一个能够普遍适用于无限嵌套模式的选择器.是否可以使用过滤器?或者甚至可能是直接选择器模式?
更新:
我认为这样的事情可以起作用,但不确定如何(或者如果允许的话)在选择器中引用"this":
$outer = $('.outer');
$inner = $outer.not('this .outer').find('.inner')
Run Code Online (Sandbox Code Playgroud)
更新2:
我本应该提到这一点:.inner永远是一个后代,.outer但不一定是直接的孩子.
更新3:
这是一些可以使用的HTML测试样本.在每种情况下,我都希望能够选择.outer并将它本身和嵌套外部之间包含的.inner配对.为清楚起见,我为每个div添加了名称(带有inner-x的外部x对)
//sample 1
<div class="outer"> outer-a
<div>
<div class="inner"> …Run Code Online (Sandbox Code Playgroud) 我很想念jQuery.我正在开展一个项目,我需要再次使用优质的纯粹Javascript弄脏手.
我有这种情况:
parent
child1
child2
child3
Run Code Online (Sandbox Code Playgroud)
通过javascript,我希望能够在任何这些孩子之前或之后插入一个新节点.虽然javascript有insertBefore,但没有insertAfter.
之前插入可以正常工作以在其中任何一个之前插入一个节点:
parent.insertBefore(newNode, child3)
Run Code Online (Sandbox Code Playgroud)
但是如何在child3之后插入一个节点?我现在正在使用它:
for (i=0,i<myNodes.length,i++){
myParent.insertBefore(newNode, myNodes[i+1])
}
Run Code Online (Sandbox Code Playgroud)
那就是在我的每个节点的下一个兄弟节点之前插入我的newNode(意味着它将它放在每个节点之后).
当它到达最后一个节点时,myNodes[i+1]变为undefined我现在正在尝试访问不存在的数组索引.
我认为'错误了,但似乎工作得很好,在那种情况下,我的节点确实插在最后一个节点之后.
但那是对的吗?我现在正在几个现代浏览器中测试它,看起来没有看似不好的效果.有没有更好的办法?
我一直在使用PhoneGap一段时间,主要集中在iOS并使用大多数100%的网络代码.
我即将调查PhoneGap用于另一个需要利用设备的本机表单输入组件的项目.
一个例子是日期选择器.iOS中的微调器,Android中的"点击器"等.
PhoneGap在多大程度上可以访问本机UI组件?如果我的目标是iOS4,我可以从我的HTML/JS中调用本机设备日期选择器吗?
(我应该补充一点,我知道这不是首选模型...... PhoneGap的全部意义是能够在更多设备上管理更少的代码,并且在共享UI上进行标准化是更好的选择......但我正在调查要求的选项......)
我一直在调试BlackBerry OS5设备上的一些jQuery(8530).有很多问题,但我已经缩小的问题与jQuery有关.each()
逻辑是这样的:
$objectArray.each(function(){
alert('test');
if(...some logic...){
$(this).addClass('testClass');
};
})
Run Code Online (Sandbox Code Playgroud)
在任何普通浏览器中,我都会收到警报,单击"确定",然后在逻辑语句为真时看到该特定项(在本例中为TD)获取更新的类.然后它通过其余的项目重复,每个项目都会收到警报,我确定它,然后我看到特定的TD课程得到更新.
然而,在黑莓8530上,我得到了每个警报,但TD没有逐个更新.相反,它们都会在最后一次警报后立即根据最后一次TD的if逻辑进行更新.
很可能这个特定的浏览器存在严重的JS问题,但我想知道是否有办法解决这个问题.有没有.each()在jQuery中使用的替代方案?
更新:
更详细的代码示例:
$TRs.each(function(){
var $TR = $(this);
var $checkBoxTD = $TR.find('td.td3');
var $checkBox = $checkBoxTD.find('input');
alert($checkBox.is(':checked'));
if ($checkBox.is(':checked')!=true){
$checkBoxTD.addClass('notSelected');
}
});
Run Code Online (Sandbox Code Playgroud)
我循环遍历TABLE的每个TR.在每个TR内是一个包含复选框的TD(.td3).我需要检查每一个.如果没有选中,我需要在TD上添加一个类.
在良好的浏览器中,警报将显示真或假,并且基于该特定警报,您将在解除警报时看到正确应用于该行的类.然后它为每一行重复.
在BB OS5的浏览器中,每个警报都弹出正确的值,但是在最后一个警报/循环之后才会更新类,因此每个TD类只使用最后一个循环的逻辑.
更新2(修复?):
感谢Alex,我做了一些更多的玩法,并找到了一种方法,让它在顽固的浏览器中工作.
$TRs.each(function(idx){
var $TR = $(this);
var $checkBoxTD = $TR.find('td.td3');
var $checkBox = $checkBoxTD.find('input');
alert($checkBox.is(':checked'));
if ($checkBox.is(':checked')!=true){
$TRs.eq(idx).find('td.td3').addClass('notSelected'); // <-- the 'fix'
}
});
Run Code Online (Sandbox Code Playgroud)
不同之处在于我将回到主要的jQuery对象$ TRs,并根据其索引特别从中获取其中一个元素.
基于此,我的最后一个问题是:上述解决方案是否对"好"浏览器有任何缺点?是否有性能受损?
我在使用jQuery测试对象的可见性时遇到了一个奇怪的问题.
我有这个测试JS:
alert($myObject.css('display'));
alert($myObject.is(':visible'));
Run Code Online (Sandbox Code Playgroud)
第一个警报显示"块",这是有意义的,因为firebug清楚地显示它被设置为display:block,您可以在浏览器中看到页面上的对象.
但是,第二个警报显示"错误".这根本不对我有任何意义.
我误解了is(':visible')的用法吗?
我们正在table-layout: fixed为我们的移动应用使用CSS 属性.(我不记得完整的原因,但我认为这与启用某些类型的自动换行有关)...
我遇到了一个问题,我们需要调整两列表中两列中的一列.没什么大不了的,通常我们这样做:
<table>
<tbody>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
这很好.
但是,如果我们需要在此之前创建一个跨越两列的行:
<table>
<tbody>
<tr>
<td colspan="2">hello world</th>
</tr>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
至少在Chrome中,会发生这样的情况:两列的宽度达到50%.我这里有一个jsbin示例:
这是正常的行为吗?一个Chrome bug?解决这个问题的方法?
我在这里陷入困境。致力于重构一堆相当混乱的角度组件及其模板的 HTML。
问题是,在一种特殊情况下,我不能在 DOM 中拥有父元素。现在,模板选择器设置如下:
<thisComponent *nIf="blah" [someParam]="hello"><thisComponent>
Run Code Online (Sandbox Code Playgroud)
在 DOM 中呈现:
<thisComponent>
<div>Hello</div>
<div>World</div>
<thisComponent>
Run Code Online (Sandbox Code Playgroud)
这破坏了我们想要使用的 CSS 并与正在呈现的其余内容保持一致。
我希望在没有父thisComponent元素的情况下完成上述工作。
我在想这样的事情可能会起作用:
<ng-container thisComponent *nIf="blah" [someParam]="hello"></ng-container>
Run Code Online (Sandbox Code Playgroud)
(然后将选择器更改为属性选择器 ala [thisComponent])
但看来这不起作用。
有没有办法在 DOM 中不渲染父元素的情况下完成上述操作?
更多背景信息。还有另一个重复的问题建议使用属性选择器,但问题是您仍然需要一个父元素(带有属性)。理想情况下,Angular 将允许父元素成为 ng-container,它不会渲染父元素。但这不受支持。
为什么需要这个:
CSS 喜欢干净的 DOM 结构,并且某些功能完全依赖于它......即 Flex 布局。当 Flex 容器和 Flex 对象之间存在额外的 DOM 层时,Flex 布局会完全崩溃。
jquery ×5
dom ×2
angular ×1
blur ×1
children ×1
cordova ×1
each ×1
html-table ×1
javascript ×1
sql ×1
sql-server ×1
tablelayout ×1
visible ×1