تصحیح!
در کد فوق، ++i هست و نه i (در هر دو حلقه). همچنین یک ++j هم در حلقه بعدی هست. یا به اصل کد مراجعه کنید در ماخذ یاد شده.
در کد فوق، ++i هست و نه i (در هر دو حلقه). همچنین یک ++j هم در حلقه بعدی هست. یا به اصل کد مراجعه کنید در ماخذ یاد شده.
$.trim(someString);
jQuery.trim(someString);
window.onload = function() { $("table tr:nth-child(even)").addClass("even"); };
$(document).ready(function() { $("table tr:nth-child(even)").addClass("even"); });
$(function() { $("table tr:nth-child(even)").addClass("even"); });
$("<p>Hi there!</p>")
<html> <head> <title>Follow me!</title> <script type="text/javascript" src="../scripts/jquery-1.2.js"></script> <script type="text/javascript"> // در زمان Reday بودن صفحه عنصر مورد نظر ایجاد میشود $(function(){ $("<p>Hi there!</p>").insertAfter("#followMe"); }); </script> </head> <body> <p id="followMe">Follow me!</p> </body> </html>
موفق وموید باشید
{ "name": "testwebapp", "version": "1.0.0", "description": "", "scripts": {}, "author": "", "license": "ISC", "dependencies": { "bootstrap": "^3.3.7", "jquery": "^2.2.4", "jquery-ajax-unobtrusive": "^3.2.4", "jquery-validation": "^1.17.0", "jquery-validation-unobtrusive": "^3.2.8" } }
[ { "outputFileName": "wwwroot/css/site.min.css", "inputFiles": [ "node_modules/bootstrap/dist/css/bootstrap.min.css", "wwwroot/css/site.css" ] }, { "outputFileName": "wwwroot/js/site.min.js", "inputFiles": [ "node_modules/jquery/dist/jquery.min.js", "node_modules/jquery-validation/dist/jquery.validate.min.js", "node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js", "node_modules/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js", "node_modules/bootstrap/dist/js/bootstrap.min.js", "wwwroot/js/site.js" ], "minify": { "enabled": true, "renameLocals": true }, "sourceMap": false } ]
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>@ViewData["Title"] - DNTCommon.Web.Core.TestWebApp</title> <link href="~/css/site.min.css" rel="stylesheet" asp-append-version="true" /> </head> <body> <div> @RenderBody() </div> <script src="~/js/site.min.js" type="text/javascript" asp-append-version="true"></script> @RenderSection("Scripts", required: false) </body> </html>
<Project Sdk="Microsoft.NET.Sdk.Web"> <Target Name="PrecompileScript" BeforeTargets="BeforeBuild"> <Exec Command="dotnet bundle" /> </Target> <ItemGroup> <DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.6.362" /> </ItemGroup> </Project>
<!DOCTYPE html> <html ng-app> <head> <title>Sample2</title> </head> <body> <div> <input type="text" ng-model="greeting.text" /> <p>{{greeting.text}}, World!</p> </div> <script src="../Scripts/angular.js"></script> </body> </html>
<!DOCTYPE html> <html ng-app> <head> <title>Sample2</title> </head> <body> <div ng-controller="GreetingController"> <input type="text" ng-model="greeting.text" /> <p>{{greeting.text}}, World!</p> <button ng-click="showData()">Show</button> </div> <script src="../Scripts/angular.js"></script> <script> var GreetingController = function ($scope, $window) { $scope.greeting = { text: "Hello" }; $scope.showData = function () { $window.alert($scope.greeting.text); }; }; </script> </body> </html>
var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m; var FN_ARG_SPLIT = /,/; var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
private const string SeparatorTitle = " - "; private const int MaxLenghtTitle = 60; public static string GeneratePageTitle(params string[] crumbs) { var title = ""; for (int i = 0; i < crumbs.Length; i++) { title += string.Format ( "{0}{1}", crumbs[i], (i < crumbs.Length - 1) ? SeparatorTitle : string.Empty ); } title = title.Substring(0, title.Length <= MaxLenghtTitle ? title.Length : MaxLenghtTitle).Trim(); return title; }
public enum CacheControlType { [Description("public")] _public, [Description("private")] _private, [Description("no-cache")] _nocache, [Description("no-store")] _nostore }
private const int MaxLenghtTitle = 60; private const int MaxLenghtDescription = 170; private const string FaviconPath = "~/cdn/ui/favicon.ico"; public static string GenerateMetaTag(string title, string description, bool allowIndexPage, bool allowFollowLinks, string author = "", string lastmodified = "", string expires = "never", string language = "fa", CacheControlType cacheControlType = CacheControlType._private) { title = title.Substring(0, title.Length <= MaxLenghtTitle ? title.Length : MaxLenghtTitle).Trim(); description = description.Substring(0, description.Length <= MaxLenghtDescription ? description.Length : MaxLenghtDescription).Trim(); var meta = ""; meta += string.Format("<title>{0}</title>\n", title); meta += string.Format("<link rel=\"shortcut icon\" href=\"{0}\"/>\n", FaviconPath); meta += string.Format("<meta http-equiv=\"content-language\" content=\"{0}\"/>\n", language); meta += string.Format("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n"); meta += string.Format("<meta charset=\"utf-8\"/>\n"); meta += string.Format("<meta name=\"description\" content=\"{0}\"/>\n", description); meta += string.Format("<meta http-equiv=\"Cache-control\" content=\"{0}\"/>\n", EnumExtensions.EnumHelper<CacheControlType>.GetEnumDescription(cacheControlType.ToString())); meta += string.Format("<meta name=\"robots\" content=\"{0}, {1}\" />\n", allowIndexPage ? "index" : "noindex", allowFollowLinks ? "follow" : "nofollow"); meta += string.Format("<meta name=\"expires\" content=\"{0}\"/>\n", expires); if (!string.IsNullOrEmpty(lastmodified)) meta += string.Format("<meta name=\"last-modified\" content=\"{0}\"/>\n", lastmodified); if (!string.IsNullOrEmpty(author)) meta += string.Format("<meta name=\"author\" content=\"{0}\"/>\n", author); //------------------------------------Google & Bing Doesn't Use Meta Keywords ... //meta += string.Format("<meta name=\"keywords\" content=\"{0}\"/>\n", keywords); return meta; }
private const int MaxLenghtSlug = 45; public static string GenerateSlug(string title) { var slug = RemoveAccent(title).ToLower(); slug = Regex.Replace(slug, @"[^a-z0-9-\u0600-\u06FF]", "-"); slug = Regex.Replace(slug, @"\s+", "-").Trim(); slug = Regex.Replace(slug, @"-+", "-"); slug = slug.Substring(0, slug.Length <= MaxLenghtSlug ? slug.Length : MaxLenghtSlug).Trim(); return slug; } private static string RemoveAccent(string text) { var bytes = Encoding.GetEncoding("UTF-8").GetBytes(text); return Encoding.UTF8.GetString(bytes); }
Head.InnerHtml = SEO.GenerateMetaTag ( title: SEO.GeneratePageTitle(".NET Tips", "آرشیو مطالب", "ASP.NET MVC #1"), description: "چرا ASP.NET MVC با وجود فریم ورک پختهای به نام ASP.NET web forms، اولین سؤالی که حین سوئیچ به ASP.NET MVC مطرح میشود این است: «برای چی؟». بنابراین تا به این سؤال پاسخ داده نشود، هر نوع بحث فنی در این مورد بی فایده است.", allowIndexPage: true, allowFollowLinks: true, author: "وحید نصیری", cacheControlType: SEO.CacheControlType._private );
<title>.NET Tips - آرشیو مطالب - ASP.NET MVC #1</title> <link rel="shortcut icon" href="../../cdn/images/ui/favicon.ico"/> <meta http-equiv="content-language" content="fa"/> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta charset="utf-8"/> <meta name="description" content="چرا ASP.NET MVC ؟با وجود فریم ورک پختهای به نام ASP.NET web forms، اولین سؤالی که حین سوئیچ به ASP.NET MVC مطرح میشود این است: «برای چی؟». بن ..."/> <meta http-equiv="Cache-control" content="private"/> <meta name="robots" content="index, follow" /> <meta name="expires" content="never"/> <meta name="author" content="وحید نصیری"/>
<div id="main"> @RenderBody() </div>
//********** @Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("Scripts", required: false)
<script type="text/javascript"> $(function () { $(document).pjax('a[withpjax]', '#main', { timeout: 5000 });
@Html.ActionLink("ارتباط با ما","Contact", "Home" , null,new { withpjax="with-pjax" })
using System; using System.Net; using System.Web.Mvc; namespace MvcApplication28.Helpers { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public sealed class SiteAuthorizeAttribute : AuthorizeAttribute { protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { if (filterContext.HttpContext.Request.IsAuthenticated) { throw new UnauthorizedAccessException(); //to avoid multiple redirects } else { handleAjaxRequest(filterContext); base.HandleUnauthorizedRequest(filterContext); } } private static void handleAjaxRequest(AuthorizationContext filterContext) { var ctx = filterContext.HttpContext; if (!ctx.Request.IsAjaxRequest()) return; ctx.Response.StatusCode = (int)HttpStatusCode.Forbidden; ctx.Response.End(); } } }
using System.Web.Mvc; using MvcApplication28.Helpers; namespace MvcApplication28.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(); } [SiteAuthorize] [HttpPost] public ActionResult SaveData(string data) { if(string.IsNullOrWhiteSpace(data)) return Content("NOk!"); return Content("Ok!"); } } }
@{ ViewBag.Title = "Index"; var postUrl = this.Url.Action(actionName: "SaveData", controllerName: "Home"); } <h2> Index</h2> @using (Html.BeginForm(actionName: "SaveData", controllerName: "Home", method: FormMethod.Post, htmlAttributes: new { id = "form1" })) { @Html.TextBox(name: "data") <br /> <span id="btnSave">Save Data</span> } @section Scripts { <script type="text/javascript"> $(document).ready(function () { $("#btnSave").click(function (event) { $.ajax({ type: "POST", url: "@postUrl", data: $("#form1").serialize(), // controller is returning a simple text, not json complete: function (xhr, status) { var data = xhr.responseText; if (xhr.status == 403) { window.location = "/login"; } } }); }); }); </script> }
filterContext.Result = new JavaScriptResult { Script="window.location = '" + redirectToUrl + "'"};
table#tblUsers.table.table-striped.table-bordered.table-hover>thead>tr>th{row}+th{Name}+th{Last Name}+th{Operations}^^tbody>tr*6>(td{row}+td{FirstName}+td{LastName}+td>button.btn.btn-primary{Edit}+button.btn.btn-danger{Delete})
<table id="tblUsers" class="table table-striped table-bordered table-hover"> <thead> <tr> <th>row</th> <th>Name</th> <th>Last Name</th> <th>Operations</th> </tr> </thead> <tbody> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button>Edit</button> <button>Delete</button></td> </tr> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button class="btn btn-primary">Edit</button> <button class="btn btn-danger">Delete</button></td> </tr> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button class="btn btn-primary">Edit</button> <button class="btn btn-danger">Delete</button></td> </tr> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button class="btn btn-primary">Edit</button> <button class="btn btn-danger">Delete</button></td> </tr> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button class="btn btn-primary">Edit</button> <button class="btn btn-danger">Delete</button></td> </tr> <tr> <td>row</td> <td>FirstName</td> <td>LastName</td> <td> <button class="btn btn-primary">Edit</button> <button class="btn btn-danger">Delete</button></td> </tr> </tbody> </table>
ul>li[ng-repeat="user in Users"]>p[ng-bind="{{user.UserName}}"]+a{Details}
<ul> <li ng-repeat="user in Users"> <p ng-bind="{{user.UserName}}"></p> <a href="">Details</a> </li> </ul>
<!-- Type this --> div.container <!-- Creates this --> <div class="container"></div>
<!-- Type this --> ul#userList <!-- Creates this --> <ul id="userList"></ul>
<!-- Type this --> div.container#wrapper <!-- Creates this --> <div class="container" id="wrapper"></div>
<!-- Type this --> button.btn.btn-primary <!-- Creates this --> <button class="btn btn-primary"></button>
<!-- Type this --> .container <!-- Creates this --> <div class="container"></div>
<!-- Type this --> div.container>div#header <!-- Creates this --> <div class="container"> <div id="header"></div> </div>
<!-- Type this --> div.navbar>div.navbar-inner>ul.navbar <!-- Creates this --> <div class="navbar"> <div class="navbar-inner"> <ul class="navbar"></ul> </div> </div>
<!-- Type this --> div[title] <!-- Creates this --> <div title=""></div>
<!-- Type this --> input[type="text" placeholder="First Name"] <!-- Creates this --> <input type="text" value="" placeholder="First Name" />
<!-- Type this --> ul[ng-repeat="user in Users"]>li[ng-model="user.FirstName"] <!-- Creates this --> <ul ng-repeat="user in Users"> <li ng-model="user.FirstName"></li> </ul>
{} متن (Text)
این عملگر، متن مورد نظر شما را داخل عنصر قرار میدهد.
<!-- Type this --> div>h1{My Title} <!-- Creates this --> <div> <h1>My Title</h1> </div>
<!-- Type this --> form>input[type="text"]+input[type="checkbox"] <!-- Creates this --> <form> <input type="text" value="" /> <input type="checkbox" value="" /> </form>
<!-- Type this --> div#header>img+h1{Title} <!-- Creates this --> <div id="header"> <img src="" alt="" /> <h1>Title</h1> </div>
<!-- Type this --> table>thead>tr>th{row}^^tbody>tr>td{row1} <!-- Creates this --> <table> <thead> <tr> <th>row</th> </tr> </thead> <tbody> <tr> <td>row1</td> </tr> </tbody> </table>
<!-- Type this --> ul>li*3>p{Hello} <!-- Creates this --> <ul> <li> <p> Hello </p> </li> <li> <p> Hello </p> </li> <li> <p> Hello </p> </li> </ul>
<!-- Type this --> (div.container>h1{title}+div.content{Some Text Here})*2 <!-- Creates this --> <div class="container"> <h1>title</h1> <div class="content"> Some Text Here </div> </div> <div class="container"> <h1>title</h1> <div class="content"> Some Text Here </div> </div>
<!-- Type this --> ul>li*2>p{item $} <!-- Creates this --> <ul> <li> <p> item 1 </p> </li> <li> <p> item 2 </p> </li> </ul>
<!-- Type this --> ul>li*2>p{item $$$} <!-- Creates this --> <ul> <li> <p> item 001 </p> </li> <li> <p> item 002 </p> </li> </ul>
<!-- Type this --> div>(header>div)+section>(ul>li*2>a)+footer>(div>span) <!-- Creates this --> <div> <header> <div></div> </header> <section> <ul> <li><a href=""></a></li> <li><a href=""></a></li> </ul> <footer> <div> <span></span> </div> </footer> </section> </div>
<!-- Type this --> div>(h1>lorem5)+(h3>lorem3) <!-- Creates this --> <div> <h1>Lorem ipsum dolor sit amet.</h1> <h3>Lorem ipsum dolor.</h3> </div>
<div ng-app="myApp" id="ng-app"> <div ng-controller="MenuCtrl" style="width:300px"> <div style="height:200px;overflow:auto;"> <div ng-repeat="menu in menu" > <div style="float:right;cursor:pointer;" ng-click="remove(menu.ID,$index);">X</div> <a href="#"> <img style="width:32px;" ng-src="/Content/user.gif" alt="{{menu.Title}}"> </a> <div> <h4>{{menu.Title}}</h4> {{menu.Url}} </div> </div> </div> <form action="/Menu/Add" method="post"> <div> <label for="Title">عنوان</label> <input id="Title" type="text" name="Title" ng-model="menu.Title" placeholder="عنوان" /> </div> <div> <label for="Url">آدرس</label> <input id="Url" type="text" name="Url" ng-model="menu.Url" placeholder="آدرس" /> </div> <div> <label for="ParentID">والد</label> <input id="ParentID" type="text" name="ParentID" ng-model="menu.ParentID" placeholder="والد" /> </div> <button type="button" ng-click="addmenu()">ذخیره</button> </form> </div> </div>
var app = angular.module('myApp', ['ngAnimate']); app.controller('MenuCtrl', function ($scope, $http) { $scope.menu = {}; $http.get('/Menu/GetAll').success(function (data) { $scope.menu = data; }) $scope.addmenu= function () { $http.post("/Menu/Add", $scope.menu).success(function () { $scope.menus.push({ Title: $scope.menu.Title, Url: $scope.menu.Url, ParentID: $scope.menu.ParentID }); $scope.menu = {}; }); }; $scope.remove = function (ID, index) { $http.post("/Menu/Remove", { ID: ID }).success(function () { $scope.menu.splice(index, 1); }); }; });
public class MenuController : Controller { // // GET: /Menu/ MyContext _db = new MyContext(); public ActionResult GetAll() { var menu = _db.Menus.ToList(); var result = JsonConvert.SerializeObject(menu, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, }); return Content(result); } public ActionResult Add(Menu menu) { _db.Menus.Add(menu); _db.SaveChanges(); return Json("1"); } public ActionResult Remove(int id) { var selectedMenu = new Menu { ID = id }; _db.Menus.Attach(selectedMenu); _db.Menus.Remove(selectedMenu); _db.SaveChanges(); return Json("1"); } public ActionResult Index() { return View(); } }
npm install stickyelements
and insert dist/stickyelements-animate.js
(or build your own bundle using src
files)
Then, stick elements! Demo
stickyElements('.item', {
stickiness: 5,
duration: 450
});