小编Nic*_*ick的帖子

模糊事件会停止点击事件吗?

看来Blur事件会阻止click事件处理程序工作吗?我有一个组合框,其中的选项仅在文本字段具有焦点时出现.选择选项链接应该导致事件发生.

我这里有一个小提琴的例子:http://jsfiddle.net/uXq5p/6/

重现:

  1. 选择文本框
  2. 链接出现
  3. 单击链接
  4. 模糊甚至发生,链接消失
  5. 没有其他事情发生.

预期行为:

在步骤5,模糊发生后,点击甚至也应该开始.我该如何做到这一点?

更新:

在玩了一段时间之后,似乎有人已经竭尽全力防止已经发生的点击事件被处理,如果模糊事件使点击的元素不可点击.

例如:

$('#ShippingGroupListWrapper').css('left','-20px');
Run Code Online (Sandbox Code Playgroud)

工作得很好,但是

$('#ShippingGroupListWrapper').css('left','-2000px');
Run Code Online (Sandbox Code Playgroud)

阻止点击事件.

这似乎是在Firefox中的错误,因为让一个元素未点击应防止未来的点击,但没有取消的时候可以点击它已经发生的.

阻止click事件处理的其他因素:

$('#ShippingGroupListWrapper').css('z-index','-20');
$('#ShippingGroupListWrapper').css('display','none');
$('#ShippingGroupListWrapper').css('visibility','hidden');
$('#ShippingGroupListWrapper').css('opacity','.5');
Run Code Online (Sandbox Code Playgroud)

我在这个网站上发现了一些有类似问题的问题.似乎有两种解决方案:

  1. 使用延迟.这很糟糕,因为它在隐藏和click事件处理程序之间创建了竞争条件.它也很草率.

  2. 使用该mousedown活动.但这不是一个很好的解决方案,因为它click 链接的正确事件.mousedown从UX的角度来看,这种行为是违反直觉的,特别是因为在释放按钮之前无法通过将鼠标移离元素来取消单击.

我还能想到更多.

3.使用mouseovermouseout链接上启用/禁用字段的模糊事件.这不适用于键盘标签,因为不涉及鼠标.

4.最好的解决方案是:

$('#ShippingGroup').blur(function()
{
   if($(document.activeElement) == $('.ShippingGroupLinkList'))
      return; // The element that now has focus is a link, do nothing
   $('#ShippingGroupListWrapper').css('display','none'); // hide it.
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,$(document.activeElement)似乎总是返回body元素,而不是单击的元素.但也许有一种可靠的方法可以知道1.哪个元素现在具有焦点或两个,哪个元素导致模糊处理程序内的模糊(不是哪个元素模糊).此外,还有其他事件(除此之外mousedown)在模糊之前触发吗?

javascript jquery

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

如何查看PHP SOAP Client Class生成的实际XML?

考虑这个示例SOAP客户端脚本:

$SOAP = new SoapClient($WDSL); // Create a SOAP Client from a WSDL

// Build an array of data to send in the request.
$Data = array('Something'=>'Some String','SomeNumber'=>22); 

$Response = $SOAP->DoRemoteFunction($Data); // Send the request.
Run Code Online (Sandbox Code Playgroud)

在最后一行,PHP从您指定的数组中获取参数,并使用WSDL构建要发送的XML请求,然后发送它.

我怎样才能让PHP向我展示它构建的实际XML?

我正在对应用程序进行故障排除,需要查看请求的实际XML.

php xml soap

52
推荐指数
5
解决办法
8万
查看次数

Web开发:我们还需要支持非JavaScript用户吗?

背景:我正在开发一个电子商务网站.我的初衷是在常规html页面上添加JavaScript,以便JS支持的用户获得额外的好处,但没有它的用​​户仍然可以使用基本的html表单将东西添加到他们的购物车,搜索等.

我遇到过一些情况,其中没有一种理智的方式以非JavaScript的方式实现某些功能.

一个例子是产品页面上的链式属性选择(颜色选择根据所选尺寸而变化,因为不是所有尺寸都有每种颜色).即使我没有使用AJAX,它仍然需要JavaScript来动态更改选项.

我能想到的唯一JavaScript替代方案是:

A.添加到购物车"向导",您必须在单独的页面上逐步浏览每个属性选项(哎呀!)

B.将每个尺寸/颜色变化作为单独的产品(并强制客户趟过类别页面以找到他们想要的颜色大小组合)

...虽然无论用户是否使用JavaScript,上述两种方法都能正常工作,但他们都会通过重组页面并强制他们使用专为最低公分母设计的界面来惩罚JavaScript用户.

所以问题是,由于JavaScript在Web开发中的作用比几年前要大得多,而且AJAX/JS应用程序/站点的设计模式现在与"经典"Web设计模式有很大不同,我们是否还会竭尽全力支持非JS用户?或者我们说,"跟你一起去吧!更新你的浏览器,打开JavaScript或去其他地方购物"?

我有兴趣看到其他开发者对此的看法.

javascript

22
推荐指数
4
解决办法
1531
查看次数

存储小型、固定大小、分层的静态数据集的好方法是什么?

我正在寻找一种方法来存储一小部分多维数据,这些数据在编译时已知并且永远不会改变。此结构的目的是充当存储在单个命名空间中的全局常量,但无需实例化对象即可全局访问。

如果我们只需要一层数据,有很多方法可以做到这一点。您可以将 anenum或 a classorstruct与静态/常量变量一起使用:

class MidiEventTypes{
   public:
   static const char NOTE_OFF = 8;
   static const char NOTE_ON = 9;
   static const char KEY_AFTERTOUCH = 10;
   static const char CONTROL_CHANGE = 11;
   static const char PROGRAM_CHANGE = 12;
   static const char CHANNEL_AFTERTOUCH = 13;
   static const char PITCH_WHEEL_CHANGE = 14;
};
Run Code Online (Sandbox Code Playgroud)

通过使用此类及其成员,我们可以轻松地比较程序中任何位置的数字变量:

char nTestValue = 8;
if(nTestValue == MidiEventTypes::NOTE_OFF){} // do something...
Run Code Online (Sandbox Code Playgroud)

但是,如果我们想要存储的不仅仅是名称和值对怎么办?如果我们还想为每个常量存储一些额外的数据怎么办?在上面的示例中,假设我们还想存储每种事件类型必须读取的字节数。

这是一些伪代码的用法:

char nTestValue = 8; …
Run Code Online (Sandbox Code Playgroud)

c++ containers

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

MySQL用变量创建用户?

我想这样做:

#Variables
SET @username="jdoe", @password="secret";

# Insert a new MySQL User
CREATE USER @username@'localhost' IDENTIFIED BY @password;GRANT USAGE ON *.* TO @username@'localhost' IDENTIFIED BY @password WITH MAX_QUERIES_PER_HOUR 120 MAX_CONNECTIONS_PER_HOUR 60 MAX_UPDATES_PER_HOUR 60 MAX_USER_CONNECTIONS 2;
Run Code Online (Sandbox Code Playgroud)

但得到:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@username@'localhost' IDENTIFIED BY @password' at line 2
Run Code Online (Sandbox Code Playgroud)

如何在CREATE USER语句中使用变量?

mysql

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

jquery event.target is_a_child_of(element)

给定element一个包含javascript对象/ DOM元素的变量,如何确定event.target是否是一个元素element

function(event){
   // assume that var element exists in this scope
   if(event.target == a_child_of(element))
      // do something
}


<div id="myDiv">
   <div class="innerDiv">
      <input type="text"/>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果elementmyDiv,内部div或输入上发生的事件或内部可能存在的任何其他元素myDiv应该使该语句评估为true.

我想我可以使用递归函数来构建子元素数组,然后检查event.target是否在数组中,但我想先看看是否有更简单的答案.

javascript jquery javascript-events

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

在SQL数据库中存储权重的最佳实践?

我正在处理的应用程序需要存储格式的权重X pounds, y.y ounces.数据库是MySQL,但我想这是数据库不可知的.

我可以想到三种方法:

  1. 将权重转换为十进制磅并存储在单个字段中.(5磅6.2盎司= 5.33671875磅)
  2. 将重量转换为十进制盎司并存储在单个字段中.(5磅6.2盎司= 86.2盎司)
  3. 在两个字段中将磅部分存储为整数,将盎司部分存储为小数.

我认为#1不是一个好主意,因为十进制磅将产生任意精度的数字,这需要存储为浮点数,这可能导致浮点数固有的不准确性.

是否有令人信服的理由选择#2而不是#3或反之亦然?

mysql database-design

11
推荐指数
2
解决办法
7176
查看次数

使用PHP创建LDAP服务器

我想在PHP中创建一个基于Web的应用程序,它接收LDAP请求并发回LDAP响应,但实际上并不使用LDAP服务器.具体来说,我想将MySQL数据库中的联系人表作为LDAP地址簿提供给Thunderbird.

两个问题:

  1. 是否有用于使用PHP实现LDAP服务器的现有库?(PHP_LDAP包用于创建LDAP客户端,PHP应用程序连接到现有LDAP服务器.)

  2. LDAP数据实际上是如何从客户端进入我的脚本的?LDAP是否通过HTTP传输?请求将显示在以下位置:

    $HTTP_RAW_POST_DATA
    
    Run Code Online (Sandbox Code Playgroud)

或者类似的?Apache可以处理LDAP请求并将它们传递到我的脚本中,还是一个完全不同的协议,需要一个不同的"监听器"应用程序来处理?

php ldap

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

如何为我的Web应用程序项目找到优秀的图形设计器?

虽然这不是严格编程相关的,这件事情我已经好几次碰上作为Web开发者,和我想象其他人碰到为好.因此,我希望这个问题能够保持开放.

作为Web开发人员,我们知道如何使我们的应用程序工作.但客户/客户/访客并不一定满意于一个可行的系统,他们想要一个具有某种图形个性的网站.一些"看起来很漂亮"的东西.

无论是"时尚","专业","酷"还是"邋"",总有一种感觉,一个网站需要与网站本身的功能相结合.

不幸的是,谷歌搜索"网页设计师",返回世界上拥有MS FrontPage和/或PhotoShop副本的所有人的列表.

所以问题是:

当你需要一个(才华横溢的)设计师时,你在哪里转弯?

您使用什么标准来确定设计师候选人是否具备技能或合格?

graphics web-applications

9
推荐指数
1
解决办法
445
查看次数

如何使用Nginx禁用PHP 5(FPM)的代码缓存?

当我将更改保存到PHP文件然后重新加载时,它会继续执行旧版本的脚本大约一分钟左右,无论我做了多少刷新.1分钟后(或左右),它执行当前版本.

如何禁用此行为以便立即进行更改?

安装程序是带有Nginx的PHP-FPM.

php caching nginx

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