在自我改进方面,我正在阅读(并重读)SeñorCrockford的TGP.但是,我不能理解他的深化方法的最中间部分.
...
return this.replace(...,
function (a, b) {
var r = ...
}
);
Run Code Online (Sandbox Code Playgroud)
我想我明白了:
? r : a;位确定是按原样返回文本还是返回实体中相应属性的值.我根本没有得到的是如何将a和b作为参数提供function (a, b).什么叫这个功能?(我知道整个事情都是自动执行的,但这对我来说并没有真正清楚.我想我在问这个函数是如何被调用的?)
如果有人有兴趣通过类似于此的打击分析给予打击,我真的很感激它,我怀疑其他人也可能.
这是为方便起见的代码:
String.method('deentityify', function ( ) {
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
return function () {
return this.replace(
/&([^&;]+);/g,
function (a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
}());
Run Code Online (Sandbox Code Playgroud) 我想我在这里失去了理智.
这是代码.(这是我为了证明这一点而实际尝试做的简化版本.)
$STH = $DBH->query("SELECT * FROM help");
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
echo $row['text'];
$help_text = $row['text'];
}
echo "->";
echo $help_text;
echo "<-";
Run Code Online (Sandbox Code Playgroud)
使用句柄DBH与MySQL数据库的数据库连接很好(未列出).查询工作正常.$row['text']循环内的回声可以多次正常工作.然而,$help_text之间的回声->和<-什么也没做,导致-><-被显示.我希望回声显示最后一个实例$row['text'].
为什么这不起作用,拜托?!
直到最近我才设置了这个设置,这个设置被多次调用:
$('.rsh')
.draggable('destroy')
.draggable({ blah blah details });
Run Code Online (Sandbox Code Playgroud)
那destroy是为了阻止多个可拖动的处理程序累积在课堂上.AJAX正在创建新元素,并且draggable对类的初始附件不会触及随后创建的元素.
但是,当我更新到jQuery UI的1.9.2版时,它开始给我这个错误:
错误:在初始化之前无法调用draggable上的方法; 试图调用方法'destroy'
所以我删除了破坏线,它很甜.除了......我怀疑我现在可能会在课堂上添加越来越多的处理程序(这就是为什么它destroy首先出现在那里).
我试过这个,但它不喜欢它:
if ($('.rsh').length) {
$('.rsh').draggable('destroy');
}
Run Code Online (Sandbox Code Playgroud)
两个问题:(1)每次打开可拖动的设置线时,是否会有越来越多的处理程序附加到班级?(2)如果是这样,有关如何删除它们的任何解决方案?
所讨论的代码使页面滚动动画到页面上的特定点。如标题所示,我希望Google Closure等效于以下jQuery:
$('html,body')。animate({scrollTop:800});
它在此处表示html, body允许浏览器不一致,这$(document)是等效的。
我尝试了以下方法:
var anim = new goog.fx.dom.Scroll(document, [0, 0], [0, 800], 400);
anim.play();
Run Code Online (Sandbox Code Playgroud)
我也尝试过document.body。
网络上没有演示程序,信息令人沮丧goog.fx.dom.Scroll。
我正在尝试使用UI创建嵌套导航手风琴.(那里有很多替代方法,但我想坚持使用UI.)这是我理解为真的 - 如果我错了,请纠正我:官方网站上 jQuery手风琴的基本形式是:
<div>
<h3><a href="#">Section 1</a></h3>
<div>
Section 1 content
</div>
<h3><a href="#">Section 2</a></h3>
<div>
Section 2 content
</div>
...
</div>
Run Code Online (Sandbox Code Playgroud)
您可以在每个部分中嵌套二级手风琴,例如,其中显示"第1部分内容":
<div class='accordion'>
<h3><a href="#1">1</a></h3>
<div>
<div class='accordion'>
<h3><a href="#1a">1.a</a></h3>
<div> Data from 1a</div>
<h3><a href="#1b">1.b</a></h3>
<div></div>
</div>
</div>
<h3><a href="#2">2</a></h3>
<div>
<div class='accordion'>
...
Run Code Online (Sandbox Code Playgroud)
但是,每个标题都要打开相应的标题,<div>即使它是空的(例如#1b).是否有可能允许标题保持其有吸引力的CSS风格的形式,但只是作为一个href?
提前致谢.
我想要好,我真的,但我看不出怎么做:)
关于如何不使用全球的任何建议将不胜感激.我们称之为全球G.
Function A
Builds G by AJAX
Function B
Uses G
Function C
Calls B
Called by numerous event handlers attached to DOM elements (type 1)
Function D
Calls B
Called by numerous event handlers attached to DOM elements (type 2)
Run Code Online (Sandbox Code Playgroud)
我无法看到我如何在这里使用全局.DOM元素(类型1和2)是在与A无关的其他函数(E&F)中创建的.我不想将G添加到每个事件处理程序(因为它很大并且有很多这些事件处理程序),并且正在执行因此需要与我在这里寻求相同类型的解决方案(即将G加入E&F).
全局G,BTW,是构建其他元素所必需的数组,因为它们又由AJAX构建.
我也不相信单身人士是真正的解决方案.
谢谢.
我的实时(托管)数据库和开发(本地)数据库中都有一个表。我想将一堆记录放入实时表中。
我一直在做的事情如下:
就目前而言,这一切都运行良好。
问题是这样的:如果活动表中的记录已被删除,步骤 1 不会将其从开发表中删除(即使您选择“用文件替换表”选项)。然后在第 3 步在实时表中重新创建该记录。
我的问题:在步骤 1 导入之前,我应该截断开发表(当然是在备份之后)吗?我的导入会将开发表上的自动增量设置为与实时表上相同的点吗?还是我要把事情搞得很糟糕?
谢谢。
编辑:这是表格。(无法更好地格式化;抱歉。)
列 - 类型 - NULL - 默认
cnumsmallint(6) 否
unumsmallint(6) 否 1
cat_subjectsmallint(2) 否
0cat_majorsmallint(2) 否
0cat_minorsmallint(2) 否
0cat_flavour char(1) 是 NULL
unmod varchar(255)否
指数:
键名类型唯一填充列基数排序规则空注释
PRIMARY BTREE 是 否 cnum 2214 A 否
我希望能够上下拖动分隔线以在固定页面高度上调整分隔线上方和下方的div.这些div可能在一张表中,尽管它们不一定是.
简而言之,我希望能够模仿jsFiddle网站上发生的事情,尽管我只需要垂直调整大小.jsFiddle使用过mooTools,但我想用jQuery来做.
一个重要的复杂因素:在动态构建之前,我不会知道除法器上方div的大小,所以我不能只是设置绝对定位.
前进的最佳方式是什么?我有一种感觉,如果我不问,我只会重新发明轮子:)
[顺便说一句:有几个类似名称的问题与不起作用的jsFiddle示例有关(例如,这个).
到目前为止我用过这个:
$('.rsh').draggable({
axis:'y',
drag: function (event, ui) {
var offsettop = ui.offset.top;
$(this).prev().css({
height: offsettop
});
});
Run Code Online (Sandbox Code Playgroud)
不用说,它还没有正常工作.
$('#my_button').on('click', function (e) {
var iframe = document.createElement('iframe');
iframe.id = "my_iframe";
iframe.onload = function() {
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.getElementsByTagName('body')[0].innerHTML = "<p>test123</p>";
iframe.contentWindow.focus();
iframe.contentWindow.print();
$("#my_iframe", top.document).remove();
};
document.getElementsByTagName('body')[0].appendChild(iframe);
});
Run Code Online (Sandbox Code Playgroud)
没有这remove条线,它打印得很好。但是,该remove行在iframe有机会执行print(). 如何设置某种回调,以便它打印然后才删除 iframe?
谢谢。
在这里略显疯狂.我正在使用jQuery.post进行Ajax调用,如下所示:
$.post('php/print.php',{data:dS},function(res){... },"text");
Run Code Online (Sandbox Code Playgroud)
我从print.php返回(作为测试):
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=test.doc");
echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
echo "Testing-2-3!";
echo "</body>";
echo "</html>";
Run Code Online (Sandbox Code Playgroud)
据Firebug说,数据很好,包括标题.但是如何让浏览器(在本例中为Firefox)提示用户保存附件?
谢谢.