我正在尝试将 zclip 与 live 绑定:
$('.code').live('click', function () {
$(this).zclip({
path: '<%= asset_path "ZeroClipboard.swf" %>',
copy: $(this).text()
});
...
});
它似乎不是那样工作的。有什么线索吗?
我需要直播,因为一些 DOM 元素是用 ajax 添加的。
我正在尝试将 zclip 与 live 绑定:
$('.code').live('click', function () {
$(this).zclip({
path: '<%= asset_path "ZeroClipboard.swf" %>',
copy: $(this).text()
});
...
});
它似乎不是那样工作的。有什么线索吗?
我需要直播,因为一些 DOM 元素是用 ajax 添加的。
您可以将 zclip-binding 放入 ajax 方法中的回调函数中,如下所示:
$.post('ajax',
{data:"data"},
function(data){
//add dom elements
....
//bind zclip
$('.code').each(function(){
$(this).zclip({
path:".ZeroClipboard.swf",
copy:$(this).txt()
});
});
}, 'json');
each() 是为了避免 $('.code') 有两个或多个元素。
检查您正在使用的 jQuery 版本。无论如何,您应该使用 .delegate() 或 .on()(如果 jQuery >= 1.7)。(jQuery 弃用了 .live 方法)它们应该通过 ajax 处理新添加的元素。
$('.code').on('click', function () {
$(this).zclip({
path: '<%= asset_path "ZeroClipboard.swf" %>',
copy: $(this).text()
});
});