GVKun编程网logo

使用jQuery on()时,为什么要使用(document)与元素本身?

7

想了解使用jQueryon的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于时,为什么要使用的相关问题,此外,我们还将为您介绍关于${document).ready()的非jQuery等效项是

想了解使用jQuery on的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于时,为什么要使用的相关问题,此外,我们还将为您介绍关于$ {document).ready()的非jQuery等效项是什么?、$(document).click()在iPhone上无法正常工作jQuery、$(document).click()在iPhone上无法正常工作。jQuery、$(document).ready 等同于没有 jQuery的新知识。

本文目录一览:

使用jQuery on()时,为什么要使用(document)与元素本身?

使用jQuery on()时,为什么要使用(document)与元素本身?

我想要一个jQuery专家以自己的话来解释为什么其他人建议$(document)标识符用于jQuery的on()语句而不是仅使用元素本身

示例1:为什么在这里使用$(document)比示例#2更好?

$(document).on("click", ".areaCodeList a", function(){    // do stuff});

示例2:为什么与示例1相比,以这种方式使用元素没有好的习惯?

$(".areaCodeList a").on("click", function(){    // do stuff});

答案1

小编典典

这两个都是有效的。

前者适用于动态添加的元素。document之所以使用,是因为您要委派文档对象的子级上的事件,因此事件会上升到文档级别。选择可以的最接近的父级也更加方便(并且父级必须在加载时存在于页面上)。

后者仍然有效,并且是将事件简单绑定到特定元素的一种首选方法。

我个人不建议委派document对象,而是建议在页面加载时存在最接近的父对象。

这是的文档on()

$ {document).ready()的非jQuery等效项是什么?

$ {document).ready()的非jQuery等效项是什么?

什么是非jQuery等效项$(document).ready()

答案1

小编典典

有趣的$(document).ready()是,它可以在之前触发window.onload。加载功能会一直等到所有内容加载完毕,包括外部资源和图像。$(document).ready但是,当DOM树完成并且可以进行操作时会触发。如果您想在没有jQuery的情况下实现DOM就绪,则可以签入此库。有人ready从jQuery中提取了一部分。它的大小不一,您可能会发现它很有用:

$(document).click()在iPhone上无法正常工作jQuery

$(document).click()在iPhone上无法正常工作jQuery

此功能在IE,Firefox和Chrome上均能完美运行,但在iPhone上,仅在单击时才能使用<img>。单击页面(除了img以外的任何地方)都不会触发该事件。

$(document).ready(function () {
  $(document).click(function (e) {
    fire(e);
  });
});

function fire(e) { alert('hi'); }

HTML部分非常基础,不应成为问题。

有任何想法吗?

$(document).click()在iPhone上无法正常工作。jQuery

$(document).click()在iPhone上无法正常工作。jQuery

此功能在IE,Firefox和Chrome上均能完美运行,但在iPhone上,仅在单击时才能使用<img>。单击页面(除了img以外的任何地方)都不会触发该事件。

$(document).ready(function () {
  $(document).click(function (e) {
    fire(e);
  });
});

function fire(e) { alert('hi'); }

HTML部分非常基础,不应成为问题。

有任何想法吗?

$(document).ready 等同于没有 jQuery

$(document).ready 等同于没有 jQuery

我有一个使用 $(document).ready 的脚本,但是它不使用 jQuery 的其他任何东西。 我想通过删除 jQuery 依赖项来减轻它的负担。

如何在不使用 jQuery 的情况下实现自己的 $(document).ready 功能? 我知道使用 window.onload 会有所不同,因为在加载所有图像,框架等之后, window.onload 会触发。


#1 楼

穷人的解决方案:

var checkLoad = function() {   
    document.readyState !== "complete" ? setTimeout(checkLoad, 11) : alert("loaded!");   
};  

checkLoad();  

查看小提琴

添加了这一点,我想更好一点,自己的范围,并且非递归

(function(){
    var tId = setInterval(function() {
        if (document.readyState == "complete") onComplete()
    }, 11);
    function onComplete(){
        clearInterval(tId);    
        alert("loaded!");    
    };
})()

查看小提琴


#2 楼

这个解决方案怎么样?

// other onload attached earlier
window.onload=function() {
   alert(''test'');
};

tmpPreviousFunction=window.onload ? window.onload : null;

// our onload function
window.onload=function() {
   alert(''another message'');

   // execute previous one
   if (tmpPreviousFunction) tmpPreviousFunction();
};

#3 楼

jQuery 答案对我来说非常有用。 只需一点重构,就可以很好地满足我的需求。 我希望它对其他人有帮助。

function onReady ( callback ){
    var addListener = document.addEventListener || document.attachEvent,
        removeListener =  document.removeEventListener || document.detachEvent
        eventName = document.addEventListener ? "DOMContentLoaded" : "onreadystatechange"

    addListener.call(document, eventName, function(){
        removeListener( eventName, arguments.callee, false )
        callback()
    }, false )
}

#4 楼

只需将其添加到 HTML 页面的底部...

<script>
    Your_Function();
</script>

因为,HTML 文档是由上至下解析的。


#5 楼

<script>/*JavaScript code*/</script> 放在结束 </body> 标记之前。

诚然,这可能不适合每个人的目的,因为它需要更改 HTML 文件,而不是仅仅做一些 JavaScript 文件在 la document.ready ,但仍...

今天关于使用jQuery on时,为什么要使用的讲解已经结束,谢谢您的阅读,如果想了解更多关于$ {document).ready()的非jQuery等效项是什么?、$(document).click()在iPhone上无法正常工作jQuery、$(document).click()在iPhone上无法正常工作。jQuery、$(document).ready 等同于没有 jQuery的相关知识,请在本站搜索。

本文标签: