Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Object doesn't support property or method 'live'

In MVC ..I have upgraded my Version to Jquery 1.9.1 and removed old versions .There is also no duplicate call in my JQuery ..I also Replaced live with on in jquery.unobtrusive-ajax.js ...Still this Error Continiues ..

Edit : 1.this error is coming on the same position on where I have replaced the first live Function .. 2.I have also restarted Asp.Net Server ..and clear all the Cache ..Still the Problem

Edit 2: I have Sort out this Problem By using old version of JQuery (1.5.2) ..I cannot change the whole project live function ...But there is Only One Problem Left that Tabs() function cannot be used in JQuery 1.5.2 ...I need sugesstion that if is there is any older version of Tabs()

Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800|Open+Sans+Condensed:300,700"
        rel="stylesheet" />
    <script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/Content/css/Site.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/home.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/nivo-slider.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/jquery.multiselect.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/assets/style.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/assets/prettify.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/css/themes/ui-lightness/jquery-ui-1.10.1.custom.css")" rel="stylesheet" type="text/css" />
    <script href="@Url.Content("~/Content/js/common/jquery.jqGrid-4.5.4/js/jquery-1.9.0.min.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/jquery/jquery-ui-1.10.1.custom.min.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/Content/css/bootstrap-cerulean.css")" rel="stylesheet" type="text/css" />
    <script href="@Url.Content("~/Content/css/assets/prettify.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/jquery.multiselect.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/Content/css/fonts.css")" rel="stylesheet" type="text/css" />
    <script href="@Url.Content("~/Content/js/highcharts/highcharts.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/eut.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/jquery/jquery.stickytableheaders.min.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/ActRate.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/Zilla.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/Fmi.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/scores.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/dashboard/UFZillaErrorStatus.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/date.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/jquery/jquery.tablesorter.js")" type="text/javascript"></script>
    <script href="@Url.Content("~/Content/js/common/jquery/jquery.tablesorter.widgets.js")" type="text/javascript"></script>
</head>
<body>
    @RenderBody()
</body>
</html>

partial View(IndiaOCR.cshtml)

@{
    ViewBag.Title = "IndiaOCR_View";
}
<h2>
    IndiaOCR_View</h2>
<body>
    <form id="form1" runat="server">
    <div id="tabs">
        <ul>
            <li id="redi" runat="server" visible="true" class='selected'>@Ajax.ActionLink("maindiv", "maindiv", null, new AjaxOptions { UpdateTargetId = "maindiv1" }, new { })</li>
            <li id="eutset" runat="server" visible="true">@Html.ActionLink("EUT", "EUT")</li>
            <li id="Li1" runat="server" visible="true">@Html.ActionLink("Regional Readiness", "RR")</li>
            <li id="Li2" runat="server" visible="true">@Html.ActionLink("Reports", "Reports")Reports</li>
            <li id="Li4" visible="false">@Html.ActionLink("Settings", "Settings")</li>
        </ul>
        <div id="maindiv1">
            <p>
                maindiv</p>
        </div>
    </div>
    </form>
    @using System.Web.Optimization
    @Scripts.Render("~/bundles/jquery")
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {

            $("#tabs").css({ 'color': "#444433", 'font-family': "Nokia Sans Wide Multiscript, Arial, sans-serif", 'font-size': "1em" });
            $("#tabs").tabs();

            var als = $('#tabs a[href="#maindiv"]').parent().index();
            $("#tabs").tabs("option", "active", als);
            //var disabled = $("#tabs").tabs('option', 'disabled');
            //$("#tabs").tabs('option', 'disabled', [3, 4]);
            $("#tabs").tabs({
                active: false,
                collapsible: true,
                beforeActivate: function (event, ui) {

                    if (ui.newTab.index('option', 'selected') != ui.newTab.index()) {

                        window.open($(ui.newTab).find('a').attr('href'), '_parent');
                        return false;
                    }
                    else {
                        event.preventDefault();
                    }
                }
            });
            $("#gmenu").css({ 'color': "#444433", 'font-family': "Nokia Sans Wide Multiscript, Arial, sans-serif", 'font-size': "1em" });
            $("#gmenu").tabs();
            //selected = $("#maindiv").text();




            $('.editbut').button({
                icons: {
                    primary: "ui-icon-pencil"
                },
                text: false



            });




        });
    </script>
</body>

My jquery.unobtrusive-ajax.js

/*!
** Unobtrusive Ajax support library for jQuery
** Copyright (C) Microsoft Corporation. All rights reserved.
*/

/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global window: false, jQuery: false */

(function ($) {
    var data_click = "unobtrusiveAjaxClick",
        data_validation = "unobtrusiveValidation";

    function getFunction(code, argNames) {
        var fn = window, parts = (code || "").split(".");
        while (fn && parts.length) {
            fn = fn[parts.shift()];
        }
        if (typeof (fn) === "function") {
            return fn;
        }
        argNames.push(code);
        return Function.constructor.apply(null, argNames);
    }

    function isMethodProxySafe(method) {
        return method === "GET" || method === "POST";
    }

    function asyncOnBeforeSend(xhr, method) {
        if (!isMethodProxySafe(method)) {
            xhr.setRequestHeader("X-HTTP-Method-Override", method);
        }
    }

    function asyncOnSuccess(element, data, contentType) {
        var mode;

        if (contentType.indexOf("application/x-javascript") !== -1) {  // jQuery already executes JavaScript for us
            return;
        }

        mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
        $(element.getAttribute("data-ajax-update")).each(function (i, update) {
            var top;

            switch (mode) {
            case "BEFORE":
                top = update.firstChild;
                $("<div />").html(data).contents().each(function () {
                    update.insertBefore(this, top);
                });
                break;
            case "AFTER":
                $("<div />").html(data).contents().each(function () {
                    update.appendChild(this);
                });
                break;
            default:
                $(update).html(data);
                break;
            }
        });
    }

    function asyncRequest(element, options) {
        var confirm, loading, method, duration;

        confirm = element.getAttribute("data-ajax-confirm");
        if (confirm && !window.confirm(confirm)) {
            return;
        }

        loading = $(element.getAttribute("data-ajax-loading"));
        duration = element.getAttribute("data-ajax-loading-duration") || 0;

        $.extend(options, {
            type: element.getAttribute("data-ajax-method") || undefined,
            url: element.getAttribute("data-ajax-url") || undefined,
            beforeSend: function (xhr) {
                var result;
                asyncOnBeforeSend(xhr, method);
                result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this, arguments);
                if (result !== false) {
                    loading.show(duration);
                }
                return result;
            },
            complete: function () {
                loading.hide(duration);
                getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments);
            },
            success: function (data, status, xhr) {
                asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html");
                getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(this, arguments);
            },
            error: getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"])
        });

        options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" });

        method = options.type.toUpperCase();
        if (!isMethodProxySafe(method)) {
            options.type = "POST";
            options.data.push({ name: "X-HTTP-Method-Override", value: method });
        }

        $.ajax(options);
    }

    function validate(form) {
        var validationInfo = $(form).data(data_validation);
        return !validationInfo || !validationInfo.validate || validationInfo.validate();
    }

    $("a[data-ajax=true]").on("click", function (evt) {
        evt.preventDefault();
        asyncRequest(this, {
            url: this.href,
            type: "GET",
            data: []
        });
    });

    $("form[data-ajax=true] input[type=image]").on("click", function (evt) {
        var name = evt.target.name,
            $target = $(evt.target),
            form = $target.parents("form")[0],
            offset = $target.offset();

        $(form).data(data_click, [
            { name: name + ".x", value: Math.round(evt.pageX - offset.left) },
            { name: name + ".y", value: Math.round(evt.pageY - offset.top) }
        ]);

        setTimeout(function () {
            $(form).removeData(data_click);
        }, 0);
    });

    $("form[data-ajax=true] :submit").on("click", function (evt) {
        var name = evt.target.name,
            form = $(evt.target).parents("form")[0];

        $(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []);

        setTimeout(function () {
            $(form).removeData(data_click);
        }, 0);
    });

    $("form[data-ajax=true]").on("submit", function (evt) {
        var clickInfo = $(this).data(data_click) || [];
        evt.preventDefault();
        if (!validate(this)) {
            return;
        }
        asyncRequest(this, {
            url: this.action,
            type: this.method || "GET",
            data: clickInfo.concat($(this).serializeArray())
        });
    });
}(jQuery));

Please SUggest where I am missing

like image 693
neeraj Avatar asked Jul 21 '14 09:07

neeraj


1 Answers

.live() has been deprecated in jq1.7 . You need to use .on() instead of .live().

Also you nee to handle event delegation in different way while using .on().

See The Syntax

like image 123
Milind Anantwar Avatar answered Oct 24 '22 01:10

Milind Anantwar