如何检测两个<div>
元素是否发生碰撞?
两个div是相互垂直的简单彩色盒子,因此没有复杂的形状或角度.
我有一个功能,设置如下
function mainFunction() {
function subFunction() {
var str = "foo";
return str;
}
}
var test = mainFunction();
alert(test);
Run Code Online (Sandbox Code Playgroud)
根据我的逻辑,该警报应该返回'foo',而是返回undefined.我究竟做错了什么?
更新:这是我的实际代码(它是使用Google API进行反向地理编码的功能)
function reverseGeocode(latitude,longitude){
var address = "";
var country = "";
var countrycode = "";
var locality = "";
var geocoder = new GClientGeocoder();
var latlng = new GLatLng(latitude, longitude);
return geocoder.getLocations(latlng, function(addresses) {
address = addresses.Placemark[0].address;
country = addresses.Placemark[0].AddressDetails.Country.CountryName;
countrycode = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
locality = addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
return country;
});
}
Run Code Online (Sandbox Code Playgroud) 我需要使用PHP访问JavaScript变量.这是我正在尝试的代码的精简版本,但是没有用:
<script type="text/javascript" charset="utf-8">
var test = "tester";
</script>
<?php
echo $_GET['test'];
?>
Run Code Online (Sandbox Code Playgroud)
我对JavaScript和PHP都是全新的,所以我非常感谢任何建议.
更新:好的,我想我简化了太多.我要做的是创建一个表单,在提交时更新Twitter状态.我的表单工作正常,但我还要添加地理位置数据.由于我使用Javascript(特别是Google Geolocation API)来获取位置,因此在提交表单时如何使用PHP访问该信息?
我正在使用twitter API返回状态更新列表及其创建时间.它以下列格式返回创建日期:
Fri Apr 09 12:53:54 +0000 2010
什么是最简单的方法(用PHP或Javascript)来格式化这个像09-04-2010?
有点奇怪的问题,但有没有人知道网页长度的实际限制,为什么它是限制?
作为一项实验,我使用HTML和CSS制作一个代表1:1比例的旅程的网站.我有一个标记的列表,我在css中用大边距分隔.但是,到目前为止,我可以开始工作的最长保证金是
top-margin:100000cm;
Run Code Online (Sandbox Code Playgroud)
由于有43个列表项,相当于4,300,000厘米,或43公里.有没有人知道为什么它会达到这个标记的极限,或者我怎么可能更长时间?我目前正在使用Safari进行测试.
我正在尝试制作一个javascript书签,它将充当荧光笔,在按下书签时将网页上所选文本的背景更改为黄色.
我正在使用以下代码来获取所选文本,并且它工作正常,返回正确的字符串
function getSelText() {
var SelText = '';
if (window.getSelection) {
SelText = window.getSelection();
} else if (document.getSelection) {
SelText = document.getSelection();
} else if (document.selection) {
SelText = document.selection.createRange().text;
}
return SelText;
Run Code Online (Sandbox Code Playgroud)
}
但是,当我创建一个类似的函数来使用jQuery更改所选文本的CSS时,它不起作用:
function highlightSelText() {
var SelText;
if (window.getSelection) {
SelText = window.getSelection();
} else if (document.getSelection) {
SelText = document.getSelection();
} else if (document.selection) {
SelText = document.selection.createRange().text;
}
$(SelText).css({'background-color' : 'yellow', 'font-weight' : 'bolder'});
Run Code Online (Sandbox Code Playgroud)
}
有任何想法吗?
我正在使用.submit()来检测表单何时提交,但它不是执行其附加功能,而是刷新页面.
我正在构建一个用于在http://chris-armstrong.com/familytree上绘制族树图(使用嵌套列表)的工具.
要添加后代,您可以打开控件,并将其添加<li class="add_member">+</li>
到每个<ul>
(或代).
当你点击一个上<li class="add_member">+</li>
元素,它取代了+
与<form class="add_member>
包括的<input>
和<submit>
按钮.然后我用来$("form.add_member").submit()
检测单击提交按钮的时间,然后它应该用表单的内容替换表单<input>
,但此时它只刷新页面(并向URL添加?).
我有什么想法我做错了吗?我已经附上了下面的全部功能.
function addAddListeners() {
$('li.add_member').click(function(){
//create input form
$(this).html("<form class='add_member'><input id='fn_' placeholder='Name' required autofocus /><button type='submit'>Add</button></form>")
//listen for input form submission
$("form.add_member").submit(function(){
//if input form isn't blank, create new li element with content of form, else go back to the add_member li
if($('form.add_member').val()) {
$(this).replaceWith('<li><span class="vcard" title="Click to edit this members …
Run Code Online (Sandbox Code Playgroud) 我试图使用google.loader.ClientLocation和maps api来获取访问者的位置并将地图置于其中心.以下对我来说很好(在Safari,Firefox和Chrome上),但是我测试它的朋友(在Safari和Firefox中)只看到一个带有Google徽标的白色框.
<script type="text/javascript" src="http://www.google.com/jsapi?key=MykeyHere"></script>
<script type="text/javascript">
google.load("maps", "2");
</script>
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("local_map"));
map.setMapType(G_PHYSICAL_MAP);
map.setCenter(new GLatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude), 15);
// map.setCenter(new GLatLng(54.5975, -5.920278), 15);
map.setUIToDefault();
}
</script>
Run Code Online (Sandbox Code Playgroud)
什么想法可能会出错?该网站位于http://www.chris-armstrong.com/ticktalk(地图靠近底部)
我想使用xslt将xml文件打印为HTML嵌套列表,据我所知,代码是正确的,但是我收到此错误
致命错误:调用未定义的函数xslt_create()
我认为这意味着xslt功能尚未启用.如何在PHP中启用这些功能?我需要包含一个php文件(就像Javascript库的工作方式)还是更复杂的东西?我是MediaTemple的主持人.
这是我正在使用的PHP代码:
<?php
// Allocate a new XSLT processor
$xh = xslt_create();
// Process the document, returning the result into the $result variable
$result = xslt_process($xh, 'armstrong.xml', 'familyToNestedList.xsl');
if ($result) {
print "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
print " variable, the \$result variable has the following contents\n<br>\n";
print "<pre>\n";
print $result;
print "</pre>\n";
}
else {
print "Sorry, sample.xml could not be transformed by sample.xsl into";
print " the \$result variable the reason is …
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个Chrome扩展程序,它在地址栏中显示为一个图标,单击此选项后,会在页面上的所有元素上设置contenteditable = true,然后再次单击时将它们设置回contenteditable = false.
但是,我陷入了第一道障碍......图标甚至没有显示在地址栏中.
这是我的清单文件:
{
"name": "Caret",
"version": "1.0",
"description": "Allows you to edit the content on any webpage",
"page_action": {
"default_icon": "icon.png"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["jquery.js", "caret.js"]
}
],
"permissions" : [
"tabs"
]
}
Run Code Online (Sandbox Code Playgroud)
这是caret.js脚本:
chrome.browserAction.onClicked.addListener(function(Tab) {
$("*").attr("contenteditable",true);
});
Run Code Online (Sandbox Code Playgroud)
这是我第一次尝试扩展,所以很可能是一个新手的错误,但我非常感谢任何帮助或建议!
javascript ×5
jquery ×3
php ×3
css ×2
html ×2
api ×1
bookmarklet ×1
form-submit ×1
function ×1
geolocation ×1
google.load ×1
highlighting ×1
mediatemple ×1
nested ×1
page-refresh ×1
parsing ×1
return ×1
return-value ×1
submit ×1
time ×1
twitter ×1
variables ×1
xml ×1
xslt ×1