我有一个使用jquery 3.2.1的HTML5应用程序.
在应用程序的一部分 - 搜索功能 - 我发出ajax请求.来自ajax请求的响应是HTML,这包括一个<script>链接到js文件的标记,该文件与应用程序位于同一服务器上.
所以ajax代码看起来像这样 - 用于发出ajax请求并将响应写入具有ID的div #ajaxContent:
$.ajax({
url: $('#searchRegulations').attr('action'),
type: 'post',
cache: false,
data: $('#searchRegulations').serialize()
}).done(function (response, status, xhr) {
if (response) {
$('main .content').hide();
$('#ajaxContent').html(response).show();
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我检查#ajaxContent我可以看到<script>标签包含在ajax响应中:
我还检查了我的网络选项卡,以确保/js/search_regulations.js正确加载,它给出了200响应:
里面search_regulations.js有一些jquery切换存在的一些过滤器#ajaxContent.
问题是这个代码似乎只在50%的时间内起作用.当它工作时,它将切换一些过滤器按钮的状态,方法是
.active在内部的元素中 添加/删除一个类.browse-ctp__filters-data,然后将它们写入带有ID的隐藏表单#tmpFilters.
为了确保脚本"触发",我放入了该行,console.log('search_regulations.js firing');并确定每次都会在控制台中显示,无论脚本是否起作用.
更奇怪的是,如果在将ajax响应写入页面后将代码剪切/粘贴到我的控制台中,它总是按预期工作.
这是脚本进入页面的方式有问题吗?
我已粘贴下面的脚本,但我不认为这是代码中的代码问题,而是处理浏览器/ ajax响应的方式:
$(function() {
console.log('search_regulations.js firing');
/* toggle the active …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码将Twitter Feed引入我的网站,该代码在https://publish.twitter.com/上有所描述
<a class="twitter-timeline" href="https://twitter.com/ACCOUNT-HERE" data-tweet-limit="3">Tweets by</a>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
Feed正确显示.然而,它使用通过Twitter提供的CSS.
当我使用Chrome开发工具检查它时,我可以在推文周围看到以下类:
<p class="timeline-Tweet-text" lang="en" dir="ltr">
Run Code Online (Sandbox Code Playgroud)
所以我认为这将是一个简单的例子,在CSS中将其作为目标,例如
.timeline-Tweet-text {
}
Run Code Online (Sandbox Code Playgroud)
但是,这不适用于推文的任何样式.为什么不?
我也在这里提到了Twitters的指导https://dev.twitter.com/web/overview/css,但这也行不通.
我想要这样做的唯一原因是小部件中使用的字体body与我网站上其他文本使用的字体相匹配.
关于Slim Framework 的文档,它说
在这个示例应用程序中,所有路由都在index.php中,但实际上这可能会产生一个相当长且难以处理的文件!可以重构您的应用程序以将路由放入不同的文件或文件中,或者只注册一组具有实际在其他地方声明的回调的路由.
它没有说明如何实际做到这一点.我唯一的想法是,你可以拆分代码到多个PHP文件,然后使用include或require在index.php引用这些.
我也不确定它是什么意思"注册一组带有实际在其他地方声明的回调的路由"
有没有人对此有任何想法,因为我想要构建的应用程序可能有相当多的路由?
有点奇怪的设置,但遇到了一个项目,其中 Composer 已在本地环境中用于启动项目。最初的开发人员没有对生产服务器的 ssh 访问权限,因此他在本地使用 Composer,并使用 FTP 将“供应商”目录从他的桌面上传到服务器。
我现在需要添加PHPMailer包,因此在我的 Mac 本地完成了以下操作:
cd Desktop/
composer require phpmailer/phpmailer
Run Code Online (Sandbox Code Playgroud)
这在我的桌面上创建了以下结构:
Desktop/composer.json
Desktop/composer.lock
Desktop/vendor/autoload.php
Desktop/vendor/composer/*
Desktop/vendor/phpmailer/*
Run Code Online (Sandbox Code Playgroud)
我需要通过 FTP 上传哪些文件?我意识到vendor/phpmailer/*是我想要的包,所以需要上传。
其他人呢?我已经配置了自动加载器,所以vendor/autoload.php这里不需要猜测?
composer.json 我可以将包添加到已经存在的包中,例如
"require": {
*other packages here*
"phpmailer/phpmailer": "^5.2"
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否有必要,因为我不会在服务器上使用 ssh/Composer 来运行任何更新?
我已经创建了一个小提琴来说明这一点:https://jsfiddle.net/9tu8n4y5/
标记非常简单,因为它应该看起来像一条虚线来分隔内容:
.dot {
border-bottom: dotted 2px #022169;
}
<div class="dot"></div>
Run Code Online (Sandbox Code Playgroud)
在Firefox 55.0.3中,这看起来像我期望的那样:
但是,在Chrome 61.0.3163.91中,它在开头和结尾都有一个奇怪的"实线":
言归正传:
有没有人有任何想法为什么这是?我想这是一个浏览器特定的问题,无法用CSS改变?
我正在使用27"5k Retina iMac.但是我的第二个显示器是非Retina屏幕,结果是相同的.
Safari 10.0.3提供与Firefox相同的结果.
编辑(发布后) - 向Chromium Bugs团队报告,https: //bugs.chromium.org/p/chromium/issues/detail?id = 766977
我认为这个问题已得到解答,但我无法解决这个问题.试过:
我在serverSide模式中使用DataTables 1.10.16 - 我的数据是通过ajax加载的,而不是在页面加载时加载.
我的标记只是一个带有ID的表,#substancesTable:
<table id="substancesTable" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>EC</th>
<th>CAS</th>
<th>Name</th>
</tr>
</thead>
</table>
Run Code Online (Sandbox Code Playgroud)
加载数据的js如下:
var substancesTable = $('#substancesTable').DataTable({
"processing": true,
"serverSide": true,
"searching": false,
"ajax": {
"url": "/get-substances.json",
"dataSrc": function (json) {
return json.data;
}
}
});
Run Code Online (Sandbox Code Playgroud)
这填好了我的桌子.我有一个事件处理程序,当用户手动点击一行(其中的任何<td>元素#substancesTable)时,它会进一步发出ajax请求以获取更多数据,然后填充<td>用户单击的数据.此代码还负责关闭/折叠任何打开的行:
$('#substancesTable tbody').on('click', 'td', function () {
var tr = $(this).closest('tr');
var row = substancesTable.row( tr );
if ( row.child.isShown() ) {
row.child.hide();
tr.removeClass('shown');
} …Run Code Online (Sandbox Code Playgroud) 我是Handlebars的新手,正在使用4.1.2版。我正在尝试将一些用PHP编写的模板移动到Handlebars。
我的数据源是一个JSON提要,其结构如下所示:
[
{
"regulations_label": "Europe",
"groups_label": "Group 1",
"filters_label: "FF1A"
},
{
"regulations_label": "Europe",
"groups_label": "Group 1",
"filters_label: "FF1B"
},
{
"regulations_label": "Europe",
"groups_label": "Group 2",
"filters_label: "FF2A"
},
{
"regulations_label": "Asia",
"groups_label": "Group 999",
"filters_label: "FF999A"
},
{
"regulations_label": "Asia",
"groups_label": "Group 999",
"filters_label: "FF999B"
},
{
"regulations_label": "Americas",
"groups_label": "Group 10000",
"filters_label: "FF10000A"
},
]
Run Code Online (Sandbox Code Playgroud)
我的HTML模板(PHP版本)的输出如下:
实现此目标的方法(不复制任何regulations_labelgroups_label 输出或输出期间)是使用条件逻辑,该条件逻辑检查先前的数组值以查看其是否已更改,例如
// …Run Code Online (Sandbox Code Playgroud) 行必须放在
.container(固定宽度)或.container-fluid(全宽)内
和
使用行创建水平列组.
为什么这有必要?
甲.row只能占据的任一的最大宽度.container或.container-fluid
鉴于你必须关闭,.row它似乎写得更长:
<div class="container">
<div class="row">
<div class="col-md-6">
<h1>Column A</h1>
</div>
<div class="col-md-6">
<h1>Column B</h1>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h1>Column C</h1>
</div>
<div class="col-md-6">
<h1>Column D</h1>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
比这个:
<div class="container">
<div class="col-md-6">
<h1>Column A</h1>
</div>
<div class="col-md-6">
<h1>Column B</h1>
</div>
</div>
<div class="container">
<div class="col-md-6">
<h1>Column C</h1>
</div>
<div class="col-md-6">
<h1>Column D</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我有如下标记,在水平线上显示 3 个文本输入
<div class="form-inline">
<div class="form-group">
<label>Field 1</label>
<input id="f1">
</div>
<div class="form-group">
<label>Field 2</label>
<input id="f2">
</div>
<div class="form-group">
<label>Field 3</label>
<input id="f3">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想要一个位于“字段 3”右侧的按钮,该按钮与输入的底部水平对齐#f3。
我查看了以下内容,但这些似乎都不起作用:
我尝试过的标记在第四个中添加了按钮.form-group,然后我在上面的链接上尝试了各种方法,例如添加.align-bottom到相关的 div。
<div class="form-inline">
<div class="form-group">
<label>Field 1</label>
<input id="f1">
</div>
<div class="form-group">
<label>Field 2</label>
<input id="f2">
</div>
<div class="form-group">
<label>Field 3</label>
<input id="f3">
</div>
<div class="form-group align-bottom">
<input type="reset" value="Reset" class="align-bottom">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
肯定有人希望按钮与表单元素的底部对齐 - 以一条漂亮的直线 - …
我正在将电子商务平台从使用 SagePay 迁移到 Stripe。
\n\n该文档显示使用的amount数字1099和货币gbp(https://stripe.com/docs/ payments/accept-a- payment#web-create- payment-intent )。
据我所知,这意味着 \xc2\xa310.99 (不是 \xc2\xa31099)。但这在他们的文档中非常不清楚 - 我假设情况就是如此。
\n\n如果我尝试通过他们的 API 发送amount => 10.99,我会在响应中收到一条错误消息:
"error": {\n "code": "parameter_invalid_integer",\n "doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",\n "message": "Invalid integer: 10.99",\n "param": "amount",\n "type": "invalid_request_error"\n }\nRun Code Online (Sandbox Code Playgroud)\n\n使用 SagePay,您实际上会10.99按照金额发送。
那么,使用 Stripe,您是否必须将所有金额转换为货币的单一基本单位(在英镑的情况下为便士),例如,如果金额为 \xc2\xa310.99,您需要(10.99 * 100)发送1099?
该文档实际上并没有明确说明这一点。如果您在他们的文档中阅读了 Decimal Amounts ( https://stripe.com/docs/billing/subscriptions/decimal-amounts ),它说您可以使用名为的参数amount_decimal,但如果通过他们的 API 发送,这也会给出错误:
$intent = \\Stripe\\PaymentIntent::create([\n \'amount_decimal\' …Run Code Online (Sandbox Code Playgroud) css ×4
html ×4
javascript ×3
jquery ×3
php ×3
ajax ×1
composer-php ×1
datatables ×1
e-commerce ×1
firefox ×1
slim ×1
twitter ×1