小编DA.*_*DA.的帖子

你可以绑定.click(),以便它在onclick之前触发吗?

我正在为一个用JSF构建的应用程序编写jQuery.JSF组件使用了很多自己的JS来执行JSF所做的任何事情,并且他们使用大量的onclick属性来处理它们.

是否有有效/正确的方法将您自己的click事件绑定到元素并确保您的事件在默认的onclick事件之前触发?看来默认情况下,在任何内联onclick函数调用之后会触发jQuery单击函数.

javascript jquery jsf click onclick

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

让jQuery忽略属性/数据名称中的大小写?

我们在data-*一些客户端交互设置中使用HTML5的属性.jQuery使用它们来做它的事情.

问题是进入的HTML可能会有所不同.显然,这是应该修复的问题,但不幸的是,我并不总是控制正在生成的HTML.

问题:

鉴于这两个标签:

<a data-sampleAttributeName="example">

<a data-sampleattributename="example">
Run Code Online (Sandbox Code Playgroud)

是否有一种聪明的方式将它们视为同一个?

我提出的最好的是这样的:

var theAttribute = ($myobject).data('sampleAttributeName');

if (($myobject).data('sampleAttributeName')){
    theAttribute = ($myobject).data('sampleAttributeName')
} else {
    theAttribute = ($myobject).data('sampleattributename')
}
Run Code Online (Sandbox Code Playgroud)

我可以把它变成一个函数,我可以将camelCase版本传递给并检查两者.我只是想知道jQuery中是否有一个更清晰的内置功能来忽略data(或attr)值的情况.

jquery camelcasing case-sensitive

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

jquery需要替代focusout()

鉴于样本标记:

<div>
    <input />
    <input />
    <input />
</div>
Run Code Online (Sandbox Code Playgroud)

如何通过jQuery确定div失去焦点?

我可以使用,focusout()但这不是我需要的.通过焦点输出,它将作为从输入到输入的一个选项卡被触发,因为它实际上正在检测(通过事件冒泡)输入正在失去焦点.

另一种表达要求的方式:我需要知道焦点何时移动到div的外部.

我之前问过类似的问题:

jquery focusin()并防止冒泡

但这与弹出式UI有关,可以通过在其后面插入一个空白DIV并在其上放置一个click/focus事件作为触发器来绕过它,但这对于这种情况不起作用.

我的下一个想法是在调用focusout时测试focusin:

    $(".myobject").focusout(function(element) {
    if(!($(this).focusin())){
        console.log('doYourThing ' + $(this));
    }
});
Run Code Online (Sandbox Code Playgroud)

唉,这不起作用(我猜测是因为它在焦点事件期间评估焦点,因此,它还没有检测到焦点.

这个问题有什么聪明的解决方案吗?我可能错过了一个原生的jQuery事件,它正是我正在寻找的东西吗?

更新:

实际上,简化的问题:

我需要相当于$('div').blur()但实际上可以在div上工作(因为模糊不能从div触发)

jquery focusout

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

jQuery/JS,iOS 4和$(文档).height()问题

我遇到了一个奇怪的问题,似乎是各种版本的Webkit浏览器.我试图将一个元素放在屏幕的中心并进行计算,我需要得到各种尺寸,特别是身体的高度和屏幕的高度.在jQuery我一直在使用:

var bodyHeight = $('body').height();
var screenHeight = $(window).height();
Run Code Online (Sandbox Code Playgroud)

我的页面通常比实际视口高很多,所以当我'警告'那些变量时,bodyHeight最终会变大,而screenHeight应该保持不变(浏览器视口的高度).

这是真的 - Firefox - Chrome 15(哇!Chrome什么时候进入15版?) - iOS5上的Safari

这不适用于: - iOS4上的Safari - Safari 5.0.4

在后两者上,$(window).height();始终返回相同的值$('body').height()

认为它可能是一个jQuery问题,我换掉了窗口高度window.outerHeight但是,它也做了同样的事情,让我觉得这实际上是某种webkit问题.

有没有人碰到这个并知道解决这个问题的方法?

为了使事情复杂化,我似乎无法孤立地复制这一点.例如:http://jsbin.com/omogap/3工作正常.

我已经确定这不是一个CSS问题,所以也许还有其他JS对我需要找到的特定浏览器造成严重破坏.

javascript webkit window ios4

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

JSF 2.0删除了所需的HTML5属性

我与一个JSF团队合作进行前端开发.我们正在输出一个INPUT字段,我需要在渲染的标签中包含placeholder一些data-属性.然而,JSF正在剥离它们.我不知道JSF对JSF团队有多大帮助,但我想我至少可以问一下.

我们使用的是旧版本的JSF,但升级到2.0,因为它似乎支持HTML5.那不是这样吗?有没有一种已知的解决方法?

html jsf html5

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

jQuery将元素ID传递给jquery语句?

我想将一个元素的ID传递给一个函数,然后调用jQuery.但是,我很难理解如何实际获取ID变量并将其与jQuery语句中的其他文本连接起来.例如,这会返回错误:

myFunction("#myObject");

function myFunction(IDofObject){

    $("'"+IDofObject+" img'").doSomething...

}
Run Code Online (Sandbox Code Playgroud)

我想用'#myObject img'做一些事情,但不能在声明中使用它.

variables jquery concatenation

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

jquery触发焦点或点击操作,但不是两者

我有这个示例代码:

$myTrigger
    .click(function(e){
         alert('click');
    })
    .focus(function(e){
         alert('focus');
         $(this).click()
    })
Run Code Online (Sandbox Code Playgroud)

目的是当我点击$ myTrigger时我想要发生一些事情.另一方面,如果你通过键盘选中它(即焦点),我想要完全相同的事情发生,所以我要求它点击.

问题是,如果我点击它,它也会集中注意力.所以这两个警报都会消失.

有没有办法防止焦点事件在点击时熄灭?

更新:

Ajm的评论让我觉得我可能会问错了.

问题:点击事件是否总是在javascript(和/或jQuery中)中引发焦点?我是否可以假设每当我想要用鼠标单击并用键盘进行Tabed-in时,focus()事件都会同时处理?

或者它是否依赖于我附加事件的特定元素?(在这种情况下,$ myObject恰好是一个锚标记(链接).

jquery focus click

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

IE中的jQuery日志记录:如何获取对象?

通过Firefox + Firebug,可以向控制台写出一个jQuery对象,控制台将非常详细地向您展示该特定对象在DOM中引用的内容.

console.log($(mySelector))
Run Code Online (Sandbox Code Playgroud)

在IE8中,使用IE8开发人员工具,我还可以访问控制台日志,该日志将如上所述.但是,就像做一个警报($ myObject)一样,我得到的只是一个通用对象:

LOG: [object Object]
Run Code Online (Sandbox Code Playgroud)

有没有办法让IE向我展示除"这是一个对象"之外的更多细节?

console jquery internet-explorer

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

检查jQuery对象中特定.data()值的正确方法?

我想检查是否已将jQuery数据值应用于对象.例如,其他地方的代码可能会将数据分配给对象:

$myObject.data('hello','world');
Run Code Online (Sandbox Code Playgroud)

在其他地方,我想检查是否给数据属性hello赋值.

处理这个问题的正确方法是什么?.hasData似乎是明显的选择,但似乎不像'hasClass'那样工作,因为你似乎无法将特定的数据元素名称传递给它.

jquery

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

使用jQuery获取整个开始标记

我们说HTML是:

<div id="page" class="someclass"> more divs </div>
Run Code Online (Sandbox Code Playgroud)

如何使用ID在HTML中显示整个开始标记及其属性(但不是结束标记)?例如:

$('#page').tag();
Run Code Online (Sandbox Code Playgroud)

然后会返回:

<div id="page" class="someclass">
Run Code Online (Sandbox Code Playgroud)

jquery

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