رفتن به مطلب

مشکل اسکریپت ها با آجاکس


پست های پیشنهاد شده

سلام.

من یه قالب فروشگاهی ساختم که صفحه بندی ها و فیلتر ها با آجاکس کار می کنن. حالا وقتی آجاکس استفاده میشه و صفحه جدید لود میشه، دیگه اسکریپت ها ی من کار نمیکنه.

مثلا یکی از اسکریپت ها magnifier شبیه سایت themeforest هست که وقتی ماوس میره روی محصول، یه تصویر tooltip باز میشه.

مشکل چطور برطرف کنم؟

کد magnifier هم به این صورت هست:

 

jQuery(document).ready(function($) {
    function objectWithPrototype(e, t) {
        function i() {}
        var n, r;
        i.prototype = e,
        n = new i,
        n.prototype = e;
        if (typeof t != "undefined")
            for (r in t)
                t.hasOwnProperty(r) && (n[r] = t[r]);
        return n
    }
    var Magnifier = {
        positionMagnifierNextTo: function(e) {
            var t, n, r;
            t = this.magnifierDiv(),
            n = jQuery(e).offset().top + jQuery(e).outerHeight() - t.outerHeight(),
            n < jQuery(window).scrollTop() && (n = jQuery(window).scrollTop()),
            jQuery(e).offset().left + jQuery(e).outerWidth() / 2 >= jQuery(window).width() / 2 ? r = jQuery(e).offset().left - t.outerWidth() : r = jQuery(e).offset().left + jQuery(e).outerWidth(),
            t.css({
                top: n,
                left: r
            })
        },
        showMagnifier: function(e) {
            jQuery(e).attr("data-tooltip1") === undefined && (jQuery(e).attr("data-tooltip1", jQuery(e).attr("title")),
            jQuery(e).attr("title", ""),
            jQuery("img", e).attr("title", "")),
            this.populateMagnifierFrom(e),
            this.positionMagnifierNextTo(e),
            this.magnifierDiv().css({
                display: "inline"
            })
        },
        hideMagnifier: function() {
            this.magnifierDiv().hide()
        },
        magnify: function(e) {
            var t = this;
            jQuery(e).on("mouseenter", function() {
                t.showMagnifier(this)
            }),
            jQuery(e).on("mouseleave", function() {
                t.hideMagnifier(this)
            })
        },
        bindMetaData: function(e) {
            var t = jQuery(e), n = this.magnifierDiv(), r, i, s = n.find("strong").empty(), o = n.find(".author").empty(), u = n.find(".category").empty(), a = n.find(".cost").empty(), f = n.find(".info");
            i = t.attr("data-price"),
            r = typeof jQuery(e).attr("data-price") != "undefined",
            s.html(t.attr("data-title")),
            o.html(t.attr("data-author")),
            u.html(t.attr("data-category")),
            a.html(r ? i : i)
        }
    }
      , ImageMagnifier = objectWithPrototype(Magnifier, {
        populateMagnifierFrom: function(e) {
            var t, n = this.magnifierDiv(), r = n.find("div.size-limiter"), i = jQuery(e);
            i.attr("data-image") ? (t = new Image,
            jQuery(t).attr("src", i.attr("data-image")),
            i.attr("data-preview-height") && (jQuery(t).attr("height", 350),
            jQuery(t).attr("width", 350 / i.attr("data-preview-height") * i.attr("data-preview-width"))),
            r.empty(),
            r.append(t),
            r.show()) : r.hide(),
            this.bindMetaData(e)
        }
    })
      , LandscapeImageMagnifier = objectWithPrototype(ImageMagnifier, {
        magnifierDiv: function() {
            return jQuery("div#landscape-image-magnifier")
        }
    });
	
    jQuery(function() {
        LandscapeImageMagnifier.magnify("a.rtltheme_product")
    });
       });

 

لینک به ارسال

سلام

با این بخش کد مشکل حل نمیشه

باید خطایی که داده میشه رو اول حل کنین

مثلا از کنسول مرورگر چک کنین خطایی که میده چیه

لینک به ارسال
  • 4 هفته بعد...
در در 4/29/2020 at 15:33، Morteza گفته است :

سلام

با این بخش کد مشکل حل نمیشه

باید خطایی که داده میشه رو اول حل کنین

مثلا از کنسول مرورگر چک کنین خطایی که میده چیه

کلا نه این کد. وقتی آجاکس اجرا میشه و نتیجه میده، دیگه کد های دیگر فایل های اسکریپ کار نمیکنه.هیچ خطایی هم نداره.

یعنی باید یه جورایی بعد از اجرای آجاکس، مجددا فایل های اسکریپ هم رندر یا از نو بارگزاری بشه.

لینک به ارسال
  • 1 ماه بعد...

باید این کدها رو بصورت تابع ایجاد کنین و در کال بک ایجاکس اونها رو فراخوانی کنین.

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...