如何在没有任何事件的情况下 select jQuery 中的新加载元素
How to select new loaded elements in jQuery without any event
我正在开发一个 jQuery 项目,该项目的一部分页面是通过选择不同的选项使用 load()
方法来加载的。
我的应用程序中有这一行:
$('.pe').myFunction();
这段代码必须在没有任何事件的情况下执行。所以我不能使用这样的任何代码:
$(document).on('click','.pe',function(){...});
它适用于具有 pe
class.But 的所有预加载元素它不适用于具有相同 class.
的新加载内容
你能帮帮我吗?
可以说是正确的做法是使用 $(document).on('.pe','click',function(){...});
;但是,在我发现这一点之前,我确实编写了相当多的程序。所以,我知道有一些解决方法。添加点击事件后,我会使用 class 将项目标记为 'completed'。
如果您有任何 'hook' 知道何时添加新的 html,您可以简单地调用一个函数,而不是使用间隔。
关于问题的注释:你确实说没有事件,这没有使用事件。
//Simulating ajax loading
setInterval(function () {
$(document.body).append('<button class="clickable">So clickable!</button><br />');
},1000);
//Your code
setInterval(function () {
$(".clickable:not(.completed)").click(function () {
console.log('works!');
}).addClass("completed");
},10);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<button class="clickable">So clickable!</button>
</div>
终于找到答案了。我只是将相同的代码放在加载的页面中。
// New page which will be loaded with its all contents ...
<script>$('.pe').myFunction();</script>
我正在开发一个 jQuery 项目,该项目的一部分页面是通过选择不同的选项使用 load()
方法来加载的。
我的应用程序中有这一行:
$('.pe').myFunction();
这段代码必须在没有任何事件的情况下执行。所以我不能使用这样的任何代码:
$(document).on('click','.pe',function(){...});
它适用于具有 pe
class.But 的所有预加载元素它不适用于具有相同 class.
的新加载内容
你能帮帮我吗?
可以说是正确的做法是使用 $(document).on('.pe','click',function(){...});
;但是,在我发现这一点之前,我确实编写了相当多的程序。所以,我知道有一些解决方法。添加点击事件后,我会使用 class 将项目标记为 'completed'。
如果您有任何 'hook' 知道何时添加新的 html,您可以简单地调用一个函数,而不是使用间隔。
关于问题的注释:你确实说没有事件,这没有使用事件。
//Simulating ajax loading
setInterval(function () {
$(document.body).append('<button class="clickable">So clickable!</button><br />');
},1000);
//Your code
setInterval(function () {
$(".clickable:not(.completed)").click(function () {
console.log('works!');
}).addClass("completed");
},10);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<button class="clickable">So clickable!</button>
</div>
终于找到答案了。我只是将相同的代码放在加载的页面中。
// New page which will be loaded with its all contents ...
<script>$('.pe').myFunction();</script>