标签: javascript-events

Javascript window.location搜索"#"永远不会返回true

我正在尝试设置一个重定向器,以便当我的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)

}

哪个有效.

javascript jquery javascript-events

2
推荐指数
1
解决办法
1827
查看次数

Onmouseover儿童div问题和事件冒泡

我有一个小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)

但它没有帮助.

javascript javascript-events

2
推荐指数
1
解决办法
5540
查看次数

如何以编程方式单击MooTools的元素?

在jQuery中,我过去做过这样的事情:

$('#someCheckbox').click();
Run Code Online (Sandbox Code Playgroud)

一切正常,好像用户只是正常点击元素.但是在MooTools中同样不起作用:

$('someCheckbox').fireEvent('click');
Run Code Online (Sandbox Code Playgroud)

未选中该复选框,也不会触发任何绑定的事件处理程序.

有没有办法做到这一点?我需要触发已绑定的"click"事件处理程序,因此只需设置它的"checked"属性就不是一个选项.

谢谢

javascript mootools dom javascript-events mootools-events

2
推荐指数
1
解决办法
6382
查看次数

Jquery:逐个淡化多个元素

是否有任何可能的解决方案,一个接一个地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

jquery javascript-events fadein

2
推荐指数
1
解决办法
3803
查看次数

detachEvent不使用命名内联函数

我今天在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

2
推荐指数
1
解决办法
3441
查看次数

如何将一些丑陋的内联javascript转换为函数?

我有一个包含各种输入的表单,默认情况下没有任何值.当用户更改一个或多个输入时,包括空白值的所有值在提交时都在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知识,所以帮助将其转换为更整洁的功能或类似的将非常感激.

javascript javascript-events

2
推荐指数
1
解决办法
561
查看次数

如果在加载发生后附加事件,则确保在jQuery事件中触发加载代码

我试图找出如何最好地将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设置的标志告诉它如果图像已经加载则运行该函数?

javascript jquery javascript-events

2
推荐指数
1
解决办法
924
查看次数

使用Java Script将数据从一个文本框复制到另一个文本框

我希望自动将数据从一个文本框复制到另一个文本框,即,当我编辑第一个文本框时,第二个文本框应该自发地反映相同的文本框.

javascript javascript-events

2
推荐指数
2
解决办法
2万
查看次数

来自iframe的Javascript父页面重定向

我需要从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上找不到任何合适的解决方案.也许有人可以帮助我.我会很感激的.:)

javascript jquery javascript-events

2
推荐指数
1
解决办法
8677
查看次数

从事件处理程序调用方法

我有这个代码我正在努力,但每次我调用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)

javascript jquery javascript-events

2
推荐指数
1
解决办法
5929
查看次数