Ajax重新加载内容(.bind)后,jQuery将无法工作



出于某种原因,我的jQuery停止工作后使用ajax改变内容(不同的脚本将改变内容和鼠标悬停这个JS应该执行)这里是我的代码这是错误的我的JS代码?还是应该继续研究Ajax代码?

jQuery.noConflict();
jQuery(function ($) {
    //get IE version
    function ieVersion() {
        var rv = -1; // Return value assumes failure.
        if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
            if (re.exec(ua) != null) rv = parseFloat(RegExp.$1);
        }
        return rv;
    }
    //read href attr in a tag
    function readHref() {
        var result = arguments[0].replace(EM.QuickShop.BASE_URL, '');
        var patn = /catalog/product/view/id/(.*?)//i;
        if (patn.test(result)) {
        var s = patn.exec(result);
        result = 'catalog/product/view/id/' +  s[1];
        } else {
        result = result.replace(///gi,"_!_");
        }
        return result;
    }
    //string trim
    function strTrim() {
        return arguments[0].replace(/^s+|s+$/g, "");
    }
    // quickshop init
    function _qsJnit() {
        var selectorObj = arguments[0];
        var listprod = $(selectorObj.itemClass);    // selector chon tat ca cac li chua san pham tren luoi
        var mypath = 'quickshop/index/view/path/';
        var baseUrl = EM.QuickShop.BASE_URL + mypath;
        var _qsHref = "<a id="em_quickshop_handler" href="#" style="visibility:hidden;position:absolute;top:0;left:0"><span><span>"+EM.QuickShop.QS_TEXT+"</span></span></a>";
        $(document.body).append(_qsHref);
        var qsHandlerImg = $('#em_quickshop_handler img');
        $.each(listprod, function (index, value) {
            var reloadurl = baseUrl;
            //get reload url
            var prodLinkTag = $(value).find(selectorObj.aClass);
            if (!prodLinkTag || prodLinkTag.length == 0) return;
            var prodHref = readHref(prodLinkTag.attr('href'));
            reloadurl = baseUrl + prodHref;
            // show quickshop handle when hover product image
            $(selectorObj.imgClass, this).bind('mouseover', function () {
                var o = $(this).offset();
                $('#em_quickshop_handler').attr('href', reloadurl).show().css({
                        'top': o.top+($(this).height() - EM.QuickShop.QS_BTN_HEIGHT)/2+'px',
                        'left': o.left+($(this).width() - EM.QuickShop.QS_BTN_WIDTH)/2-4+'px',
                        'visibility': 'visible',
                        'z-index':  999
                });
            });
            $(value).bind('mouseout', function () {
                $('#em_quickshop_handler').hide();
            });
        });
        //fix bug image disapper when hover
        $('#em_quickshop_handler').bind('mouseover', function () {
            $(this).show();
        }).bind('click', function () {
            $(this).hide();
        });
        //insert quickshop popup
        $('#em_quickshop_handler').fancybox({
            'width': EM.QuickShop.QS_FRM_WIDTH,
            'height': EM.QuickShop.QS_FRM_HEIGHT,
            'autoScale': false,
            //'padding': 20,
            //'margin': 20,
            //'transitionIn'        : 'none',
            //'transitionOut'       : 'none',
            'type': 'iframe',
            onComplete: function () {
                $.fancybox.showActivity();
                $('#fancybox-frame').unbind('load');
                $('#fancybox-frame').bind('load', function () {
                    $.fancybox.hideActivity();
                });
            }
        });
    }
    if (typeof EM_QUICKSHOP_DISABLED == 'undefined' || !EM_QUICKSHOP_DISABLED)
        _qsJnit({
            itemClass: '.products-grid li.item, .products-list li.item, li.item .cate_product, .product-upsell-slideshow li.item, .mini-products-list li.item, #crosssell-products-list li.item', //selector for each items in catalog product list,use to insert quickshop image
            aClass: 'a.product-image', //selector for each a tag in product items,give us href for one product
            imgClass: '.product-image img' //class for quickshop href
        });
});

将事件处理函数放入$(document).ready(function(){…})中。现在可以运行了

最新更新