小编Ben*_*enM的帖子

jQuery clone()没有克隆事件绑定,即使是on()

我创建了一系列用于移动Web应用程序的自定义jQuery事件.它们运行良好且经过测试.但是,我遇到了一个小问题,我无法理解.

我正在使用.clone()DOM中的一些元素,其中包含一个按钮.该按钮具有绑定到它的一些自定义事件(事件使用绑定.on()),但是.不幸的是,当我使用jQuery时.clone(),绑定不会被保留,我必须再次添加它们.

有没有人遇到这个,有人知道潜在的工作吗?我认为使用.on()应该保留现在或将来存在的元素的绑定?

javascript jquery

95
推荐指数
1
解决办法
6万
查看次数

text-align:在<select>或<option>上右键

有没有人知道是否可以将文本对齐到WebKit中某个<select>或更具体<option>元素的右侧.这不需要是包含IE的跨浏览器解决方案,但如果可能的话应该是纯CSS.

我试过了两个:

select { text-align: right }并且option { text-align: right },似乎在WebKit(Chrome,Safari或Mobile Safari)中都没有.

任何帮助感激不尽!

html css webkit

72
推荐指数
4
解决办法
11万
查看次数

MySQL:按字段排序,将空单元格放在最后

我有一个MySQL表,其中包含许多产品.我想要做的是按一个特定列对表进行排序(大多数值以数字开头,例如:1st,2nd)等等.但是,由于某些记录没有此列的值,所以当我尝试排序时,表格自动将空行放在第一位.

我正在寻找一种方法来排序ASCENDING行,但只在有序记录的末尾插入空白记录,如果这有意义的话?

任何帮助都会非常感激!

mysql sorting

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

直接后代只有jQuery的find()

是否可以使用jQuery find()children()函数仅选择元素的直接后代?

我有几个ul元素,每个元素都包含其他ul元素,还有一些根li元素.我将一个特定的父项存储ul在一个变量中(作为一个jQuery对象),然后查找使用中的任何根li元素:my_root_ul.find('li');.

但是,如果有意义的话,这个方法也会找到li属于ul内部的任何内容ul.

我的问题是,如何limy_root_ul对象中仅选择直接后代类型find().通常,我们可以使用类似$('ul > li')只返回直接li元素的东西,但必须可以过滤掉返回的元素?

这是一个展示我的意思的例子:

<ul>
    <li>I want this
        <ul>
            <li>I don't want this</li>
            <li>I don't want this</li>
            <li>I don't want this</li>
        </ul>
    </li>
    <li>I want this</li>
    <li>I want this</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom

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

iframe内的Google地图无法加载

我遇到了一个奇怪的问题,我不知道问题是什么.以下jQuery代码是我想要实现的简化版本:

var iframe = $('<iframe />');
iframe.prop('src', 'https://maps.google.com/maps?q=London&hl=en&sll=37.0625,-95.677068&sspn=46.677964,93.076172&t=h&hnear=London,+United+Kingdom&z=10');
iframe.appendTo($('body')); 

// When the iframe loads:
iframe.load(function() {
    alert(1);
});
Run Code Online (Sandbox Code Playgroud)

永远不会加载地图,并且load()永远不会触发事件.Chrome报告以下错误:

Refused to display 'https://maps.google.com/maps?q=London&hl=en&sll=37.0625,-95.677068&sspn=46.677964,93.076172&t=h&hnear=London,+United+Kingdom&z=10' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

怎么绕过这个?

这是一个jsFiddle演示.

javascript jquery google-maps

24
推荐指数
3
解决办法
4万
查看次数

处理PHP/MySQL中的未读帖子

对于个人项目,我需要使用PHP和MySQL构建一个论坛.我不可能使用已经构建的论坛包(例如phpBB).

我目前正在研究构建这样一个应用程序所需的逻辑,但这是漫长的一天,我正在努力处理用户未读帖子的概念.我的一个解决方案是拥有一个单独的表,它基本上保存所有帖子ID和用户ID,以确定它们是否已被读取:

tbl_userReadPosts: user_id, post_id, read_timestamp

显然,如果用户的ID出现在此表中,我们就知道他们已经阅读了帖子.这很好,除非我们每天都有帖子(这比在提议的系统中更有可能)和用户的thousdands.即使不是几小时,这张表也会在几天内变得很大.

另一种选择是将用户的上一个活动作为时间戳跟踪,然后检索在上次活动更新后发布的所有帖子.这在理论上是有效的,但是假设用户正在写一篇非常长的帖子,同时几个成员也开始新的线程或回复其他线程中的帖子.当用户提交他的新帖子时,他的最后一个活动将被更新,因此与那些同时进行的活动不匹配.

有没有人有这方面的经验,你是如何解决它的?

我已经检查了phpBB,似乎系统为每个用户分配了一个自定义会话,并在此基础上工作,但文档对于如何处理未读帖子非常稀疏.

一如既往地感激地收到了想法和意见.

php mysql phpbb forums read-unread

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

创建没有选择器先决条件的自定义jQuery函数

我知道我可以使用$.fn.myFunction构造函数创建自定义jQuery插件,并在JavaScript中调用自定义函数$('selector').myFunction().

但是,对于我目前正在进行的项目,我需要能够定义一个不需要选择器工作的函数.这实际上是一个MessageBox插件,它将以类似于C#MessageBox类的方式运行.因此,我最好将函数创建为MessageBox,然后按如下方式调用它:

var myMessage = $.MessageBox(); 然后依次 myMessage.Show();

注意在函数调用开始时jQuery引用中缺少选择器bracket.

我们将非常感激地就此最佳做法提出任何建议.

javascript jquery

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

防止在键盘显示器iOS 6上滚动

我遇到了一个奇怪的问题.我目前正在使用HTML5和CSS3仅为iOS 6制作移动网络应用程序.

然而,当input元素接收焦点并且显示软键盘时,滚动窗口以使输入不被键盘遮挡(即使它不会在任何情况下).

我已经阅读了SO和通过谷歌,可以添加以下内容以防止此行为(在UIWebView中查看此内容时):

input.onfocus = function () {
    window.scrollTo(0, 0);
    document.body.scrollTop = 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎在iOS 6中,即使窗口最初滚动到0,0,它也会再次滚动以使聚焦元素居中.有没有其他人遇到这个,他们知道iOS 6的修复?

javascript iphone html5 mobile-website ios6

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

如何在JavaScript中检测设备触摸支持?

过去,当检测设备是否支持JavaScript中的触摸事件时,我们可以执行以下操作:

var touch_capable = ('ontouchstart' in document.documentElement);
Run Code Online (Sandbox Code Playgroud)

但是,true即使底层设备不支持触摸事件,Google Chrome(17.x.x +)也会返回上述检查.例如,在Windows 7上运行上面的代码返回true,因此如果我们将它与以下内容结合起来:

var start_evt = (touch_capable) ? 'ontouchstart' : 'onmousedown';
Run Code Online (Sandbox Code Playgroud)

在Google Chrome上,由于我们绑定了该事件,因此该事件永远不会被触发ontouchstart.简而言之,有没有人知道绕过这个的可靠方法?我目前正在运行以下检查:

var touch_capable = ('ontouchstart' in document.documentElement && navigator.userAgent.toLowerCase().indexOf('chrome') == -1)
Run Code Online (Sandbox Code Playgroud)

这远非理想......

javascript google-chrome javascript-events

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

Sencha Touch - 取消选择列表项?

我正在研究Sencha Touch应用程序,并有一个联系人列表.当点击列表项时,会显示一个ActionSheet,显示一些基本功能(如调用,删除和忽略).不幸的是,当用户点击并触发ActionSheet时,List项目仍然在叠加层下面被选中(参见下面的屏幕截图):

iOS模拟器的屏幕截图

这是绑定到itemTap事件的函数:

itemTap: function(list, index)
{
    // Deselect the selected record:
    var currentRecord = list.getStore().getAt(index);
    currentRecord.forename      = currentRecord.get('forename');
    currentRecord.surname       = currentRecord.get('surname');
    currentRecord.phoneNumber   = currentRecord.get('phoneNumber');
    currentRecord.shortFullName = currentRecord.forename + ' ' +  currentRecord.surname[0];

    list.getStore().deselect(index, true);

    callButton.setText('Call ' + currentRecord.shortFullName + ' (' + currentRecord.phoneNumber + ')');
    unfriendButton.setText('Remove ' + currentRecord.shortFullName + ' as friend');
    friendActionSheet.show();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,list.getStore().deselect(index, true)返回以下错误:Object [object Object] has no method 'deselect'

关于我可能做错了什么的想法,或者我如何能做到这一点?

javascript sencha-touch

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