2

Drupal ビュー、ajax、hoverIntent プラグインを組み合わせてコンテンツを表示しています。問題は、ajax リクエストの後、「hoverIntent」イベントが my セレクター (この場合はビューの各行) にバインドされなくなったことです。誰にもこれに対する解決策がありますか?

プラグイン非圧縮 hoverIntent js へのリンク

hoverIntent ホームページ

以下の私のコード--

hoverIntent: これは、カーソルが行の上にある場合に行を展開し、同時に他のすべての行を折りたたみます。

$('.view-latest-new .views-field-field-story-lead-image-fid').addClass('expand');
var config = {
    over: function() {
         var expand = $(this).find(".expand");
         if(expand.css("display") == "none")
         {
            $(".expand").slideUp("fast");
            $(this).find(".expand").slideDown("fast");
         }
    }, 
    out: function() {
    }
};
$('.view-home .views-row').hoverIntent(config);

編集:アヤックス:

    var container = $('#content-inner');

    $('#block-menu-secondary-links a').bind('click', function(){
        var trigger = $(this);
        var arg = trigger.attr('title');

        doAjax(arg,container);
        return false;
    });

    function doAjax(arg,container){
        $.ajax({
            url: 'views/ajax?view_name=home&view_display_id=page_1&view_args'+arg,
            timeout:5000,
            success: function(data){
                var result = Drupal.parseJson(data);
                updateContainer(result.display);
            },
        });
    };

    function updateContainer(content){
        container.html(content);
        $('.view-latest-new .views-field-field-story-lead-image-fid').addClass('expand');
        $('.view-latest-new .views-row').hoverIntent(config);
    }

ありがとう!

EDIT 2:解決策を見つけました。$('.view-home .views-row').hoverIntent(config);updateContainer 関数に追加します。ただし、これが最善の方法であるかどうかはわかりません。しかし、それは機能します。

4

1 に答える 1

1

解決:

「hoverIntent」イベントを独自の関数に移動しました。次に、ドキュメントの準備ができたとき、および ajax リクエストが完了した後に呼び出しました。

    function hoverInit() {
        $('.view-latest-new .views-field-field-story-lead-image-fid').addClass('expand').parent().hoverIntent(config);
    }

    hoverInit();

    function updateContainer(content){
        container.html(content);
        hoverInit();
    }
于 2011-06-29T20:39:34.017 に答える