Jquery没有使用像Jackate这样的插件来为dom添加新添加的元素
我一直在互联网上搜索这个,我找到了一些有用的答案但是它们不足以解决我的问题(例如类似的问题,但我的问题没有提供解决方案 )
我正在使用JRate插件,我使用jQuery在div
添加div
。 问题是,当我使用jQuery添加它并使用JRate函数时,它们无法正常工作。 但他们正在努力工作,没有增加新的div
。
我知道如何让它发挥作用。 我将不得不使用$(document)
但我不知道如何使用此代码。
这是HTML
这是我的Jquery
$(".jRate").jRate({ onSet: function(rating) { alert(rating); } });
这是我的附加代码
var divjRate = ""; $(divjRate).appendTo('.fb-jRate');
任何人都可以告诉我如何在这里使用$(document)
或任何其他替代解决方案。
您需要首先附加html元素,以便它在DOM
注册。 然后,您可以在其上调用jRate
var divjRate = ""; // Append new element to container of choice $(divjRate).appendTo('.fb-jRate'); // Use plugin on new element $('.jRate').jRate({ onSet: function(rating) { alert(rating); } });
您链接的解决方案适用于绑定事件侦听器,而典型的jQuery插件通常涉及DOM替换和其他事情。
您需要将该方法应用于新添加的DOM元素。 由于性能问题,不推荐使用DOM突变事件规范,并且期望浏览器跟踪DOM中发生的所有更改(以及发生何种更改)是不现实的。
例如,如果要使用AJAX调用添加新内容,则可以将该方法应用于jqXHR.done()
函数中新添加的内容。
更新 :OP提供了一些代码,所以我添加了一种方法来初始化新添加的DOM元素的插件:
// Declare new element var divjRate = ""; // Use plugin on new element $(divjRate).find('.jRate').jRate({ onSet: function(rating) { alert(rating); } }); // Append new element to container of choice $(divjRate).appendTo('.fb-jRate');