jQuery插件没有应用于$.ajax动态内容
jQuery plugin not getting applied to $.ajax dynamic content?
免责声明:我知道以前在这里问过这种类型的问题,但我似乎找不到。我试着搜索了一堆不同的$.ajax dynamic
+live()
类型的东西,但找不到解决方案,不管怎样,问题就在这里。
问题:
我正在构建一个可以保存代码片段的网站。我正在通过$.ajax.
从数据库中提取内容。这是网站:InsanelyWeb.com的选择框选项内容也是动态的。尝试选项HTMLDOCTYPE>HTML4 Strict(因为这是目前唯一有效的选项。(
正如你所看到的,有一些静态内容已经应用了SyntaxHighlighter插件。但当我按照上面的选择选项,从数据库中提取数据时,它会丢失插件。我认为这是因为内容是动态的,我不能把东西应用到其中。这就是我的代码。
jQuery:
$('#labels').live('change', function() {
getScripts();
});
$.ajax({
url: './db_scripts/get_scripts.php',
success: function( data ) {
var dataObj = jQuery.parseJSON( data );
$.each(dataObj, function() {
$('#code').html( this.code );
})
highlighter(); //after success, initiates highlighter
},
});
function highlighter() {
SyntaxHighlighter.all();
}
问题:
如何将插件应用于动态内容?我试过async: false
,但我认为这不是解决方案。非常感谢您抽出时间。
解决方案:
(非常好地(解释如下:
function highlighter() {
SyntaxHighlighter.highlight()
}
据我所见,问题是highlight函数只调用一次(在window.load上(。
尝试在ajax回调函数中自己调用SyntaxHighlighter.highlight((函数。
更新(详细说明(:
SyntaxHighlighter.highlight()
是突出显示页面上标记为SyntaxHighlighter源代码的所有元素的函数。
SyntaxHighlighter.all()
只是为window.load事件注册highlight()
函数。我认为这是为了确保在应用SyntaxHighlighter之前加载了DOM。
如果您多次调用SyntaxHighlighter.all()
,它只会再次注册highlight()
函数。因为您正在执行ajax请求,所以不再触发window.load事件。所以您可以直接拨打SyntaxHighlighter.highlight()
。
- Jquery Selected plugin - 由 Ajax 动态填充列表
- 使用 AJAX 动态持续加载内容
- 基于ajax动态定位列表项
- jCarousel通过Ajax动态加载内容
- 如何使用jQuery.ajax动态修改添加的html
- 使用下拉菜单的Ajax动态内容
- 使用JQuery通过ajax动态发送json格式的表单后数据
- 如何使用ajax动态添加类
- Jquery Chosen插件-通过Ajax动态填充列表时显示加载图标
- 使用Javascript、Jquery或Ajax动态插入Yahoo Merchant Store目录标签
- 使用php和ajax动态刷新表格
- 当通过ajax动态添加标记时,Wicket-IE8-Javascript事件侦听器不会执行
- PHP、MySQL 和 Ajax:动态显示默认数据、选择现有数据或添加新数据
- Yii:使用 ajax 动态加载新模型
- 使用 AJAX 动态更新谷歌地图
- 在使用 ajax 动态添加的 DOM 元素的点击上调用 JavaScript 函数
- 使用 ajax 动态刷新 jquery 数据表
- Ajax 动态选择表单未提交值
- JavaScript/Ajax动态更新WTForms选择字段
- 谷歌地图标记没有通过ajax动态显示