点击<a>页面跳转解决办法/跨域请求,JSONP

有些时候做的东西刚好要用到链接,但又不需要去链接,只需要对onclick事件进行处理,但它却这样子写 <a href="#" οnclick="gettext()">点击</a> 当点击"点击"两个文字时,页面就会跳动.怎样使页面不跳动呢? 


方法一:<a href="###" οnclick="gettext()">点击</a> 

方法二:<a href="javascript::" οnclick="gettext()">点击</a> 

方法三:<a href="javascript:void(0);" οnclick="gettext()">点击</a>

javascript:是伪协议,表示url的内容通过javascript执行。
void(0)表示不作任何操作,这样会防止链接跳转到其他页面。
这么做往往是为了保留链接的样式,但不让链接执行实际操作,具体的操作交给链接的onclick事件处理

而我之前自己把<a>的href属性删掉也可以欸。


select 的选中问题用val()就可以搞定,不用改变他的select属性

 


 

处理 JSON 出现错误Uncaught SyntaxError: Unexpected token :

下面简单说下原因。

使用 Ajax 获取 json 时,存在跨域限制,不能这样调用;而 jsonp 实际是请求一个 script,然后允许里面的代码。

使用 jsonp 方式,但返回结果确实 json,自然出错,无法运行

【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例

 


用nginx的反向代理机制解决前端跨域问题

转载于:https://www.cnblogs.com/cndotabestdota/p/5778879.html

我在JavaScript编程中遇到了报错,我的原始代码如下:// 页面加载后初始化 $(document).ready(function() { // 登录表单提交 $('#loginForm').submit(function(e) { e.preventDefault(); $.ajax({ url: '/api/login', method: 'POST', data: { username: $('input[type="text"]').val(), password: $('input[type="password"]').val() }, success: function(response) { // 跳转到主界面 window.location.href = 'dashboard.html'; } }); }); // 导航菜单切换 $('.nav-list li a').click(function(e) { e.preventDefault(); let target = $(this).attr('href'); // 移除所有active状态 $('.nav-list li').removeClass('active'); $(this).parent().addClass('active'); // 加载对应内容 loadContent(target.substring(1)); }); }); // 动态加载内容 function loadContent(pageType) { let urlMap = { 'unprocessed': '/api/faults', 'statistics': '/api/statistics', 'management': '/api/management' }; $.get(urlMap[pageType], function(data) { let template = ''; switch(pageType) { case 'unprocessed': template = buildFaultTable(data); break; case 'statistics': template = buildChart(data); break; case 'management': template = buildManagementPanel(data); break; } $('#contentContainer').html(template); }); } // 构建故障表格 function buildFaultTable(data) { let html = `<table class="fault-table"> <thead> <tr> <th>序号</th> <th>故障类别</th> <th>级别</th> <th>地点</th> <th>发生时间</th> </tr> </thead> <tbody>`; data.forEach((item, index) => { html += `<tr class="${item.level === '一级' ? 'urgent' : ''}"> <td>${index + 1}</td> <td>${item.type}</td> <td>${item.level}</td> <td>${item.location}</td> <td>${new Date(item.time).toLocaleString()}</td> </tr>`; }); html += `</tbody></table>`; return html; }
05-29
我的文章列表一地址为https://fcw66.xyz/?thread-1.htm 其中后缀是文章地址二为https://fcw66.xyz/?thread-2.htm 请把下面这个代码绑定到我这个论坛上 这样我就能实现不用后台也可以更新这个代码的文章列表了<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>简约文章列表</title> <style> /* 基础样式 */ * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', sans-serif; } body { background: #f5f5f5; padding: 40px 20px; } /* 容器样式 */ .container { max-width: 800px; margin: 0 auto; background: white; border-radius: 15px; box-shadow: 0 3px 15px rgba(0,0,0,0.1); padding: 30px; } /* 标题样式 */ .title { text-align: center; color: #333; margin-bottom: 30px; font-size: 24px; } /* 文章列表项 */ .article-item { padding: 18px 25px; margin: 10px 0; background: #fff; border: 1px solid #eee; border-radius: 8px; cursor: pointer; transition: all 0.3s; font-size: 16px; } .article-item:hover { transform: translateX(5px); box-shadow: 0 2px 8px rgba(0,0,0,0.1); border-color: #007bff; } /* 分页容器 */ .pagination { display: flex; justify-content: center; margin-top: 30px; gap: 8px; } /* 分页按钮 */ .page-btn { padding: 8px 14px; border: none; background: #f8f9fa; border-radius: 6px; cursor: pointer; transition: all 0.2s; color: #333; } .page-btn.active { background: #007bff; color: white; } .page-btn:hover:not(.active) { background: #e9ecef; } </style> </head> <body> <div class="container"> <h1 class="title">文章列表</h1> <!-- 文章列表 --> <div id="articleList"></div> <!-- 分页按钮 --> <div class="pagination" id="pagination"></div> </div> <script> // 模拟数据(实际使用时替换为真实数据) const allArticles = Array.from({length: 25}, (_, i) => ({ id: i+1, title: `第 ${i+1} 篇文章 - ${'示例标题文本示例标题文本'.slice(0, 15)}` })); let currentPage = 1; const itemsPerPage = 10; // 初始化 function init() { renderArticles(); renderPagination(); } // 渲染文章列表 function renderArticles() { const start = (currentPage - 1) * itemsPerPage; const end = start + itemsPerPage; const currentArticles = allArticles.slice(start, end); const html = currentArticles.map(article => ` <div class="article-item"> ${article.title} </div> `).join(''); document.getElementById('articleList').innerHTML = html; } // 渲染分页按钮 function renderPagination() { const totalPages = Math.ceil(allArticles.length / itemsPerPage); let buttons = ''; for(let i=1; i<=totalPages; i++) { buttons += ` <button class="page-btn ${i === currentPage ? 'active' : ''}" onclick="changePage(${i})"> ${i} </button> `; } document.getElementById('pagination').innerHTML = buttons; } // 切换页面 function changePage(page) { currentPage = page; renderArticles(); renderPagination(); } // 初始化加载 init(); </script> </body> </html>
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值