我正在尝试设置一个重定向器,以便当我的AJAX函数更改URI的哈希部分时,如果链接被复制和粘贴,该链接仍然可以直接访问.我目前的职能如下; 但是,它总是返回false!
//If a hash is found, redirect it
var current_uri = String(window.location);
if (current_uri.search('/\#/') != -1) {
var current_uri_array = current_uri.split('#');
window.location = current_uri[1];
}
Run Code Online (Sandbox Code Playgroud)
如何更改代码以使其工作?有没有更好的方法呢?谢谢你的帮助.
代码更新为:
if (window.location.hash) {
window.location = window.location.hash.substring(1);
Run Code Online (Sandbox Code Playgroud)
}
哪个有效.
我有一个小div(悬停)一个大的.
我将onmouseover和onmouseout事件分配给包装器div.
用于图像标题翻转动画.
问题是当鼠标位于标题本身之上时,会导致不需要的结果(可能是事件冒泡).
另一个问题是:有时当你将鼠标从外部移动到容器时,你会得到一个三重序列:(它应该只有2个):
- 我结束了 - 我外出 - 我结束了 -
如何使它工作?(没有jquery)
必须适用于所有浏览器.
我已经添加了firebug控制台日志,以便更好地进行调试.
更新:
我在RollOverDescription中添加了这个(不在在线演示中):
if (!eventHandle) var eventHandle = window.event;
var srcEle = eventHandle.srcElement.id;
if(srcEle=="imageDescription" ){
return;
}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.
在jQuery中,我过去做过这样的事情:
$('#someCheckbox').click();
Run Code Online (Sandbox Code Playgroud)
一切正常,好像用户只是正常点击元素.但是在MooTools中同样不起作用:
$('someCheckbox').fireEvent('click');
Run Code Online (Sandbox Code Playgroud)
未选中该复选框,也不会触发任何绑定的事件处理程序.
有没有办法做到这一点?我需要触发已绑定的"click"事件处理程序,因此只需设置它的"checked"属性就不是一个选项.
谢谢
是否有任何可能的解决方案,一个接一个地fadeIn(500)多个列表元素?
<ul id="list">
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
亲切的问候,Werner
我今天在IE8中遇到了一个问题(注意我只需要支持IE)我似乎无法解释:使用命名的匿名函数处理程序时detachEvent不起作用.
document.getElementById('iframeid').attachEvent("onreadystatechange", function onIframeReadyStateChange() {
if (event.srcElement.readyState != "complete") { return; }
event.srcElement.detachEvent("onreadystatechange", onIframeReadyStateChange);
// code here was running every time my iframe's readyState
// changed to "complete" instead of only the first time
});
Run Code Online (Sandbox Code Playgroud)
我最终发现改变onIframeReadyStateChange以使用arguments.callee(我通常会避免)而不是解决了这个问题:
document.getElementById('iframeid').attachEvent("onreadystatechange", function () {
if (event.srcElement.readyState != "complete") { return; }
event.srcElement.detachEvent("onreadystatechange", arguments.callee);
// code here now runs only once no matter how many times the
// iframe's readyState changes to "complete"
});
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?!第一个代码段不应该正常工作吗?
javascript internet-explorer anonymous-function javascript-events
我有一个包含各种输入的表单,默认情况下没有任何值.当用户更改一个或多个输入时,包括空白值的所有值在提交时都在URL GET字符串中使用.
所以要清理它我有一些javascript在提交之前删除输入.它运作良好,但我想知道如何把它放在一个js函数或整理它.看起来有点混乱,让它全部聚集在onclick上.此外,我将增加更多,所以会有不少.
这是相关的代码.有3个单独的行,3个单独的输入.该行的第一部分有一个引用ID("mf","cf","bf","pf")的值,而该行的第二部分引用父div("dmf"," dcf"等).
第一部分是输入结构的一个例子......
echo "<div id='dmf'><select id='mf' name='mFilter'>";
Run Code Online (Sandbox Code Playgroud)
这部分是提交和js ...
echo "<input type='submit' value='Apply' onclick='javascript: if (document.getElementById(\"mf\").value==\"\") { document.getElementById(\"dmf\").innerHTML=\"\"; }
if (document.getElementById(\"cf\").value==\"\") { document.getElementById(\"dcf\").innerHTML=\"\"; }
if (document.getElementById(\"bf\").value==\"\") { document.getElementById(\"dbf\").innerHTML=\"\"; }
if (document.getElementById(\"pf\").value==\"\") { document.getElementById(\"dpf\").innerHTML=\"\"; }
' />";
Run Code Online (Sandbox Code Playgroud)
我有几乎没有javascript知识,所以帮助将其转换为更整洁的功能或类似的将非常感激.
我试图找出如何最好地将load事件附加到元素,但要确保它运行.当我绑定到img的load事件时出现问题,但是绑定发生得太晚而且图像已经加载了.是否有一些方法在jQuery中检查图像是否已经加载?
它显然是一个间歇性问题,因为有时代码在图像加载之前运行,有时则不运行.
$(function () {
var hasRun = false;
$('#image').bind('load', function () {
if ($(this).width() <= 0 || $(this).height() <= 0 || hasRun) return;
hasRun = true;
// do work here
}).trigger('load');
});
Run Code Online (Sandbox Code Playgroud)
代码看起来像那样.我添加了hasRun变量并检查变量的高度和宽度以确保其已加载,然后添加了触发器.
有一个更好的方法吗?是否有一些我可以使用jQuery设置的标志告诉它如果图像已经加载则运行该函数?
我希望自动将数据从一个文本框复制到另一个文本框,即,当我编辑第一个文本框时,第二个文本框应该自发地反映相同的文本框.
我需要从iframe实现父页面重定向.我知道由于浏览器的安全性,不可能在不同的域中进行.但是我发现链接具有target属性并尝试以下列方式使用它:
<a href="http://google.com" target="_top" id="testParentRedirect">someLink</a>
Run Code Online (Sandbox Code Playgroud)
如果我手动点击此链接,它工作正常,但我找不到使用javascript模拟它的跨浏览器解决方案.
document.getElementById('testParentRedirect').click();
Run Code Online (Sandbox Code Playgroud)
这在IE中工作正常,但Firefox和Safary不知道点击功能:).
我尝试使用jquery,但由于某种原因,他们不模拟链接的点击事件.(见以下帖子)
我在stackoverflow上找不到任何合适的解决方案.也许有人可以帮助我.我会很感激的.:)
我有这个代码我正在努力,但每次我调用init方法我都会收到错误
this.addElement不是一个函数
是因为我不能从事件处理程序调用方法?
function editor () {
this.init = function () {
$("#area").bind('click' , this.click_event );
}
this.addElement = function () {
console.log("adding element");
}
this.click_event = function(event) {
this.addElement();
console.log("click event in x : "+event.data);
}
}
Run Code Online (Sandbox Code Playgroud)