我查找了load方法,找到了php include的替代方法。我有动态添加html的负载,它的工作原理。但问题是功能不起作用。我认为这既是订单问题,也是结构问题或简单逻辑。任何帮助我的功能在动态生成的HTML中工作将不胜感激。下面的示例结构。
// Create new zip file to store the file.
auto zip_file(new QuaZip(file_path.string().c_str()));
if(zip_file->open(QuaZip::mdCreate))
{
QuaZipFile file(zip_file);
if(file.open(QIODevice::WriteOnly, QuaZipNewInfo("something.xml")) == false)
{
// Error
}
else
{
// Do stuff...
}
答案 0 :(得分:3)
如果您在.class
内定义了header.html
元素,那么您需要使用 event delegation ,如下所示:
$(document).on('click','.class',function () {
$('#id').slideToggle('fast');
});
事件委派应该用于稍后部分或
DOM
加载后添加到DOM
的控件。
<强>更新强>
当您将事件直接附加到以下元素时:
$('.element').click(function(){
....
});
或如下:
$('.element').on('click',function(){
....
});
这些事件不会附加到DOM
加载后添加的动态添加元素或元素。因此,您需要将event
附加到document
定位到DOM中的特定element
,如下所示:
$(document).on('click','.element',function(){
...
});
或在页面加载期间加载的父级。对于Ex:
假设你有以下结构:
<div class="somediv">
<!--Many other children elements here-->
</div>
现在,您将通过append
或load
或以任何其他可能的方式添加一个活动,结构将如下所示:
<div class="somediv">
<!--Many other children elements here-->
<button class="element">Click here<button> <!--This is dynamically added element -->
</div>
现在您可以将事件附加到.somediv
而不是附加到document
,因为它是在DOM
加载期间添加的,而新添加的元素将位于此.somediv
中。
这实际上会明确改善代码的性能 告诉
jquery
从哪里开始动态搜索 添加.element
和jquery
可以更快地搜索它而不是 遍历document
所以你可以写如下:
$('.somediv').on('click','.element',function(){
//^^^^parent div ^^^dynamically added element
//do anything here
});
答案 1 :(得分:1)
试试这个
$(document).ready(function () {
"use strict";
$("header").load("/_includes/header.html", function () {
$('.class').click(function () {
$('#id').slideToggle('fast');
});
});
});
答案 2 :(得分:0)
对旧的jQuery版本使用.live()
$( ".class" ).live( "click", function() {
$('#id').slideToggle('fast');
});
旧版
$( selector ).live( events, data, handler ); // jQuery 1.3+
$( document ).delegate( selector, events, data, handler ); // jQuery 1.4.3+
$( document ).on( events, selector, data, handler ); // jQuery 1.7+