0

如果使用 Ajax 加载对象,我如何选择对象并将函数应用到它们?

此代码有效,但我希望此代码在没有点击事件的情况下运行。所以它会自动运行。

$(document).on("click",".button",function(e){

    var imgcount = $('.slider img').length;
    var slidesize = 100 / imgcount
    var innersize = 100 * imgcount

    $('.slider img').wrap('<div class="slide" />');
    $('.slide').wrapAll('<div class="inner" />');
    $('.inner').wrapAll('<div class="overflow" />');
    $('.slide').css('width', slidesize + '%');
    $('.inner').css('width', innersize + '%');

    });

这就是我加载内容的方式

$('.work-item-hover').click(function(){

    var toLoad = $(this).attr('href')+' #content-post > *';
    $('#content-post').slideUp('normal',loadContent);
    $('#load').remove();
    $('.content-post-wrap').append('<span id="load">LOADING...</span>');
    $('#load').fadeIn('normal');
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
    function loadContent() {
        $('#content-post').load(toLoad,'',showNewContent())
    }
    function showNewContent() {
        $(document).ajaxComplete(function(){
    $('#content-post').slideDown('slow',hideLoader());
});
4

3 回答 3

1

显式触发点击事件

    $('.slide').css('width', slidesize + '%');
    $('.inner').css('width', innersize + '%');
}).click();
于 2013-06-01T19:01:41.533 回答
0

$(document).ready(function(){});- 除此之外,请确保您调用$('element').click();任何 AJAX 请求的成功函数。

于 2013-06-01T19:06:48.217 回答
0

在您的情况下,这showNewContent()是您的成功方法。您可以在此处插入代码(或为方便起见将其包装在另一个命名函数中)。

function showNewContent() {       

    var imgcount = $('.slider img').length;
    var slidesize = 100 / imgcount
    var innersize = 100 * imgcount

    $('.slider img').wrap('<div class="slide" />');
    $('.slide').wrapAll('<div class="inner" />');
    $('.inner').wrapAll('<div class="overflow" />');
    $('.slide').css('width', slidesize + '%');
    $('.inner').css('width', innersize + '%');

    $('#content-post').slideDown('slow',hideLoader());
}

请注意,我删除了对的调用,.ajaxComplete()因为它是多余的,因为它showNewContent()已注册.load()complete handler此处.load(toLoad,'',showNewContent())(并且仅针对此单个请求)。通过您的原始呼叫,您可以注册所有 ajax 请求。

沙盒测试

于 2013-06-01T20:52:59.847 回答