<div id="artists">
<div class="list">
<div class="anything" data-container="artist" data-title="Dousk">
<strong>Dousk</strong>
</div>
<div class="anything" data-container="artist" data-title="Emma Louise">
<strong>Emma Louise</strong>
</div>
<div class="anything" data-container="artist" data-title="Hidden Orchestra">
<strong>Hidden Orchestra</strong>
</div>
</div>
<div class="more" data-action="artist" data-url="1">+</div>
</div>
var $Artist = function () {
var imageURL = '/ajax/image.html',
artistURL = '/ajax/artist.html',
options = {
method: 'artist.getinfo',
api_key: '666',
format: 'json'
},
next;
return {
getImage: function ($items) {
$items.each(function () {
var $item = $(this);
$.ajax({
url: imageURL + '?' + $.param(options) + '&artist=' + encodeURIComponent($item.data('title')),
dataType: 'json',
success: function(data) {
$item.append($('<img>').attr('src', data.artist.image[2]['#text']));
}
});
});
},
getArtists: function ($link) {
var _class = this;
$.ajax({
url: artistURL + '?' + $link.data('url'),
dataType: 'html',
success: function (data) {
var data_ = $(data);
data_.each(function () {
var $item = $(this);
if ($item.is('[data-container="artist"]')) {
_class.getImage($item);
} else if ($item.is('[data-url]')) {
$link.data('url', $item.data('url'));
}
});
data_.appendTo(container);
}
});
}
};
}(),
container = $('#artists .list');
$Artist.getImage($('[data-container="artist"]'));
$(document).on('click', '[data-action="artist"]', function (e) {
$Artist.getArtists($(this));
});
{
"artist": {
"image": [
"",
"",
{
"#text": "/pic/posters/185.jpg"
}
]
}
}
<div class="anything" data-container="artist" data-title="ATB">
<strong>ATB</strong>
</div>
<div class="anything" data-container="artist" data-title="AIR">
<strong>AIR</strong>
</div>
<div class="anything" data-container="artist" data-title="The Calm Blue Sea">
<strong>The Calm Blue Sea</strong>
</div>
<div data-url="2"></div>
success: function(out){
result = $(out).find('#loop .post');
nextlink = $(out).find('#showmemore a').attr('href');
$('#loop').append(result.fadeIn(300));
...
}
$(function () {
$(document).on('click', '#showmemore a', function (e) {
// Тут код
});
});
А ещё оказалось, что webkit захватывает в clientRects предыдущую строку, если первым символом в Range оказывается символ после ­...