


Detailed explanation of how the delegate method in jQuery implements Ajax request binding events without losing them
After binding a click event to an element, I encountered a problem: when executing some ajax requests and calling this page again, the click event inside became invalid
For example: My paging is an ajax request, but when I click on the next page, the element a generated does not have a click event.
Problems encountered when doing projects by myself:
Purpose: Delete checkboxes in batches. When you click to delete, the onclick event bound to the button using jquery is triggered to obtain the values of all checkboxes.
1. There is no problem when directly injecting smarty into the call page for the first time. When the page is called again to list records based on conditional query (Ajax implementation), the click event fails
Reason: ajax loading content is an operation after $(document).ready(). At this time, When binding the function, the set of elements found does not include the content loaded by ajax, so there is no problem with the original one, but the later loaded ones are not bound.
Final solution:
1. Use jQuery’s delegate() method
2. Use native js to write the value of the check box into the submission verification function.
<form method="post" action="channel_code_manage.php?act=removeall" name="listForm" id="deleted" class="fn-mt20" onsubmit=" return checkbox();">
There is a value, the verification is passed, and the value is assigned to a hidden field value
No value, return
function checkbox() { var compatibility = "",input = document.getElementsByTagName("input"),value; for (var i = 0; i < input.length; i++) { if (input[i].type == "checkbox") { if (input[i].checked) { value = input[i].value; if(value!='on'){ 给全选按钮value设置为on 排除此选项 compatibility += value + ","; 拼接字符串 }} } } compatibility = compatibility.substring(0,compatibility.lastIndexOf(",")); //删除最后的, if(!compatibility){ //如果字符串为空 ,返回false alert('请选择要删除的记录'); return false; }else{ document.getElementById('getvalues').value=compatibility; //如果字符串不为空 把值赋值给隐藏于提交 confirm('确定批量删除?'); } }
##Solution:
1. In ajax request Rebind the event after success2
. Use jquery's delegate(sel,[type],[data],fn) method The live() method has been deprecated
$(document).delegate('a', 'click', function() { blah() }) Solve the binding event Ajax request without invalidation
Specify Add one or moreevent handlers to elements (which are child elements of the selected element) and specify functions to be run when these events occur.
Event handlers using the delegate() method apply to the current or future elements (such as new elements created by scripts).Parameters:
selector:Selector string, used for filterelements that trigger events.
type:One or more events attached to the element. Multiple event values separated by spaces. Must be a valid event.
data:Extra data passed to the function
fn:Function to run when the event occurs
$(function(){ $('#deleted').delegate("button",'click',function(){ 被选元素的子元素---->deleted为form 表单 button为表单中的按钮 checked = []; $('input:checkbox:checked').each(function() { checked.push($(this).val()); }); $('#getvalues').val(checked); //给隐藏域设置属性 }) })Perfect solution Question, haha!
Extension:
In the old version of jQuery, when you need to respond to an event on the page content of a certain fragment loaded by ajax on the page, you can use live function to respond to its events, such as: $('a').live('click', function() { blah() });In newer versions of jQuery, the live function has been abandoned Used, Then how to implement the function of the live function in the new version, that is, when the page fragment is loaded by ajax, how does the content in this page fragment respond to related events?- One is to directly import jquery-migrate so that the live function can Use, but do not optimize performance.
- The other is to use the delegate function to implement the live function
$(document).delegate('a', 'click', function() { blah() });
The above is the detailed content of Detailed explanation of how the delegate method in jQuery implements Ajax request binding events without losing them. For more information, please follow other related articles on the PHP Chinese website!

JavaScript is widely used in websites, mobile applications, desktop applications and server-side programming. 1) In website development, JavaScript operates DOM together with HTML and CSS to achieve dynamic effects and supports frameworks such as jQuery and React. 2) Through ReactNative and Ionic, JavaScript is used to develop cross-platform mobile applications. 3) The Electron framework enables JavaScript to build desktop applications. 4) Node.js allows JavaScript to run on the server side and supports high concurrent requests.

Python is more suitable for data science and automation, while JavaScript is more suitable for front-end and full-stack development. 1. Python performs well in data science and machine learning, using libraries such as NumPy and Pandas for data processing and modeling. 2. Python is concise and efficient in automation and scripting. 3. JavaScript is indispensable in front-end development and is used to build dynamic web pages and single-page applications. 4. JavaScript plays a role in back-end development through Node.js and supports full-stack development.

C and C play a vital role in the JavaScript engine, mainly used to implement interpreters and JIT compilers. 1) C is used to parse JavaScript source code and generate an abstract syntax tree. 2) C is responsible for generating and executing bytecode. 3) C implements the JIT compiler, optimizes and compiles hot-spot code at runtime, and significantly improves the execution efficiency of JavaScript.

JavaScript's application in the real world includes front-end and back-end development. 1) Display front-end applications by building a TODO list application, involving DOM operations and event processing. 2) Build RESTfulAPI through Node.js and Express to demonstrate back-end applications.

The main uses of JavaScript in web development include client interaction, form verification and asynchronous communication. 1) Dynamic content update and user interaction through DOM operations; 2) Client verification is carried out before the user submits data to improve the user experience; 3) Refreshless communication with the server is achieved through AJAX technology.

Understanding how JavaScript engine works internally is important to developers because it helps write more efficient code and understand performance bottlenecks and optimization strategies. 1) The engine's workflow includes three stages: parsing, compiling and execution; 2) During the execution process, the engine will perform dynamic optimization, such as inline cache and hidden classes; 3) Best practices include avoiding global variables, optimizing loops, using const and lets, and avoiding excessive use of closures.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Dreamweaver Mac version
Visual web development tools