我的背景是在C中,我已经选择了PHP,mySQL,HTML,CSS而没有太多问题.
但我发现Javascript/jQuery难以正确使用.很沮丧.为什么?
它似乎违反了许多传统的编程原则(例如可变范围)
未定义的变量似乎无处不在,并且已经存在与它们相关联的值.例如(来自jQuery文档):
$("a").click(function(event) {
event.preventDefault();
$('<div/>')
.append('default ' + event.type + ' prevented')
.appendTo('#log');
});
Run Code Online (Sandbox Code Playgroud)
什么是"事件"?我必须使用此变量名称吗?我应该假设这个对象是用正确的东西神奇地实例化的,我可以使用JQuery API中的任何方法列表吗?
似乎有一堆随机规则(例如,返回false以停止默认操作,但有时这不起作用?)
调试时的非确定性行为.(例如,我刷新浏览器,尝试一些东西并获取结果X用于我在Firebug中观看的JS变量.我再次刷新,我得到结果Y?)
非常混乱的代码很难遵循.什么时候发生?我正在使用Firebug和Chrome开发者工具,但我没有获得足够的可见度.
似乎每天都有一些随机的JS"规则"出现在我的任何JS书籍或教程中我从未见过.
我需要做些什么才能使Javascript/jQuery对我更具确定性,控制性和逻辑性?
有没有资源可以解释Javascript的怪癖/陷阱?
谢谢!
我的搜索框中的默认文字在Chrome,FF和Safari中看起来很好(vertical-align:middle).
但是,默认文本会出现在IE 8中搜索框的顶部.
IE有解决方法吗?谢谢你的帮助.
HTML:
<input type="text" class="text" value="Search" title="Search" />
Run Code Online (Sandbox Code Playgroud)
CSS:
.text {
height: 47px;
font-size: 18px;
margin: 0;
padding: 0 5px 0 45px;
}
Run Code Online (Sandbox Code Playgroud) 当我通过对象调试器运行我的Facebook Open Graph对象(http://www.21dads.com/testobject)时,我收到以下错误:
对象无效值:'thetestasdf:recipie'类型的URL'http://www.21dads.com/testobject'上的对象无效,因为属性'og:url'的给定值'www.21dads.com/testobject'可以不被解析为类型'url'.
缺少必需属性:og:url属性是必需的,但不存在.
缺少必需属性:og:type属性是必需的,但不存在.
缺少必需属性:og:title属性是必需的,但不存在.
这是对象页面上的HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# thetestasdf: http://ogp.me/ns/fb/thetestasdf#">
<meta property="fb:app_id" content="325291980834949" />
<meta property="og:type" content="thetestasdf:recipie" />
<meta property="og:url" content="www.21dads.com/testobject" />
<meta property="og:title" content="Cookie Recipie!" />
<meta property="og:description" content="Tastiest recipe ever" />
<meta property="og:image" content="http://cdn.techpatio.com/wp-content/uploads/2009/11/cookie_law_eu.gif" />
<title> Cookie Recipie</title>
<head/>
<body>
<p> Test object page </p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
URL"www.21dads.com/testobject"是我的控制器,然后从视图文件生成HTML.为什么不能解析此URL?
为什么我已经包含其他"缺少必需属性"错误?
谢谢.
以下FB.Login功能在桌面Chrome,FF和Safari中正常工作.但是在移动版Safari中(在iPhone 4S上测试过),它会挂起并且不会返回到FB.login回调.当我使用Safari并将用户代理设置为"Safari iOS 4.3.3 - iPhone"时,我也可以在控制台中看到这一点.
是因为移动Safari阻止弹出窗口?(FB.login触发弹出对话框).
我该如何解决?谢谢.
function Login(returnLink) {
FB.login(function(response) {
if(response.status === 'connected') {
console.log('User is now FB logged in.');
// now log them into my site
encodedReturnLink = encodeURIComponent(returnLink);
window.location = location.protocol + '//' + location.host + "/login?returnUrl=" + encodedReturnLink;
}
else {
console.log('User did not fully authorize after clicking FB login button.');
}
},
{scope : 'email, publish_actions, publish_stream'}
);
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个HTML5应用程序,我正在尝试访问本机视频方法(播放,暂停等...)并使用jQuery.我不想使用任何其他插件.
var movie = $('#video_with_controls');
$('#buttonX').click(function() {
movie.play();
});
Run Code Online (Sandbox Code Playgroud)
但是当我执行上面的代码时,我收到以下控制台错误消息:
Object has no method 'play'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢.
在用主机名“ server1”和“ server2”设置Apache虚拟主机后,由于无法在iOS或Android中修改/ etc / hosts文件,我将如何用我的iPhone(或任何移动设备)访问它们?
我的理解是,您必须按名称引用虚拟主机(假设您的物理服务器上只有1个IP地址),但是无法将这些虚拟主机名映射到我的物理服务器上的单个IP地址。
我正在使用MAMP在笔记本电脑上运行服务器,而我的Vonage路由器/ Apple Airport不支持DNS。我需要设置本地DNS服务器吗?有什么简单的方法可以在笔记本电脑上运行它吗?谢谢。
我已经在Codeigniter/PHP中编写了我的webapp v1.我现在正在研究v2,它将对所有MVC组件进行一些重大更改.
我很喜欢CI,我喜欢它.像我这样的C编码器非常直观.但我想知道在Rails中重写应用程序是否值得?生产力的提高是否值得从头开始学习另一个框架的成本?我想要实用而不是追逐某些东西只是因为它更酷或更有趣.
以下是一些生产力标准:
HTML和CSS生成相当费力.Rails有什么独特之处可以帮助解决这个问题吗?
我想重用其他人的代码来实现常用的功能(例如与FB,Twitter和其他社交网站的接口).使用Rails可以获得多少第三方代码重用?
我从Rails社区与CI社区获得了多少好处?
使自动化测试更容易.我今天手动测试,这是劳动密集型的.
我会感谢特定的利益与理想主义/宗教论点.谢谢!
当我进行以下jQuery调用时
$.post('/publish/comments',
parms,
function(data, textStatus){
console.log('textStatus: ' . textStatus);
console.log('returned data: ' . data);
console.log('nextPage: ' . data.nextPage);
},
"json"
);
Run Code Online (Sandbox Code Playgroud)
控制台显示数据,textStatus和data.nextPage都是未定义的.
但是在Chrome开发工具(网络标签)中,我可以看到以下JSON数据正从服务器传回.
{success:true, nextPage: /go/page/requestId/182/src/publish}
nextPage: "/go/page/requestId/182/src/send"
success: true
Run Code Online (Sandbox Code Playgroud)
思考?
我试图让所有textareas删除焦点上的默认文本,除了 "预填充"类.但问题是仍然正在选择和包括"预填充"类的文本.
关于如何解决这个问题的建议?谢谢.
jQuery(document).ready(function inputHide(){
$('textarea, input:text, input:password').not($('.pre-fill')).focus(function() {
if ($(this).val() === $(this).attr('defaultValue')) {
$(this).val('');
}
}).blur(function() {
if ($(this).val()==='') {
$(this).val($(this).attr('defaultValue'))
}
});
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试1)当用户关注它时删除textarea中的默认文本.2)如果他没有输入任何内容并点击,则应重新插入默认文本.
下面的代码处理案例#1,但Chrome和Safari(但不是Firefox)中的案例#2失败了.当我输入文本(所以$(this).html().length> 0)然后单击时,jQuery错误地确定$(this).html().length == 0,因此它删除了输入的文本和重新插入默认文本.
jQuery(document).ready(function inputHide(){
$('textarea').each(function(){
var this_area = $(this);
var this_area_val;
this_area_val = this_area.html();
this_area.focus(function(){
if(this_area.html() == this_area_val){
this_area.html('');
}
}).blur(function(){
if(this_area.html().length == 0){
this_area.html(this_area_val);
}
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.