标签: javascript-events

如何在代码中触发jQuery更改事件

我有一个工作正常的变更事件,但我需要让它来递减.

所以我有一个在更改时触发的函数,它将根据类选择器"更改"其他下拉菜单(注意"下拉",可能有多个).此代理更改不会触发该功能,因此失败.我怎样才能让它发挥作用?

$(document).ready(function () {
    var activeDropBox = null;

    $("select.drop-box").change(function () {
        var questionId = $(this).attr("questionId");
        var selectedAnswer = $(this).val();
        activeDropBox = this;

        alert(this.questionId);

        $.ajax(
        {
            type: "POST",
            url: answerChangedActionUrl,
            data: { questionId: questionId, selectedValue: selectedAnswer },
            success: function (data) {
                SetElementVisibility(data.ShowElement, questionId);
            }, error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('XMLHttpRequest:' + XMLHttpRequest.responseText);
                alert('textStatus:' + textStatus);
                alert('errorThrown:' + errorThrown);
            }
        });
    });

    function SetElementVisibility(visible, questionId) {
        // I would like each child to then trigger the change event...
        $(".childOf" …
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-events

170
推荐指数
5
解决办法
28万
查看次数

将click事件附加到尚未添加到DOM的JQuery对象

在将Click事件添加到JQuery对象之前,我一直遇到很多麻烦.

基本上我有我的函数返回的这个按钮,然后我将它附加到DOM.我想要的是返回具有自己的点击处理程序的按钮.我不想从DOM中选择它来附加处理程序.

我的代码是这样的:

createMyButton = function(data) {

  var button = $('<div id="my-button"></div>')
    .css({
       'display' : 'inline',
       'padding' : '0px 2px 2px 0px',
       'cursor' : 'pointer'
     }).append($('<a>').attr({
       //'href' : Share.serializeJson(data),
       'target' : '_blank',
       'rel' : 'nofollow'
     }).append($('<image src="css/images/Facebook-icon.png">').css({
       "padding-top" : "0px",
       "margin-top" : "0px",
       "margin-bottom" : "0px"
     })));

     button.click(function () {
        console.log("asdfasdf");
     });

     return button;     
}
Run Code Online (Sandbox Code Playgroud)

返回的按钮无法捕获click事件.但是,如果我这样做(在将按钮添加到DOM之后):

$('#my-button').click(function () {
    console.log("yeahhhh!!! but this doesn't work for me :(");
});
Run Code Online (Sandbox Code Playgroud)

它有效...但不适合我,不是我想要的.

它似乎与该对象尚未成为DOM的一部分有关.

哦! 顺便说一句,我正在使用OpenLayers,我正在附加按钮的DOM对象是一个OpenLayers.FramedCloud(它还不是DOM的一部分,但会触发几个事件.)

javascript jquery onclick javascript-events

165
推荐指数
5
解决办法
14万
查看次数

mouseover和mouseenter事件有什么区别?

我一直使用这个mouseover事件,但在阅读我发现的jQuery文档时mouseenter.它们似乎完全相同.

这两者之间是否存在差异?如果是,我应该何时使用它们?
(也适用于mouseoutvs mouseleave).

javascript jquery events javascript-events

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

$(this)和event.target之间的区别?

我是jQuery的新手,正在制作选项卡式面板,遵循JavaScript和jQuery教程:The Missing Manual,当作者这样做时,第一行是:

   var target = $(this);
Run Code Online (Sandbox Code Playgroud)

但我试着这样做

   var target = evt.target;
Run Code Online (Sandbox Code Playgroud)

我得到了那个错误:

Uncaught TypeError: Object http://localhost/tabbedPanels/#panel1 has no method 'attr'
Run Code Online (Sandbox Code Playgroud)

当我改evt.target回去时$(this),它就像一个魅力.

我想知道$(this)和之间的区别是evt.target什么?

这是我的代码,以防您需要它:

index.html:

<!DOCTYPE html>
<html>
    <head>
        <title>Tabbed Panel</title>
        <style>
            body {
               width : 100%;
               height: 100%;
            }

            #wrapper {
                margin : auto;
                width : 800px;                
            }

            #tabsContainer {
                overflow: hidden;
            }

            #tabs {                
                padding:0;
                margin:0;
            }                

            #tabs li {
                float : left;
                list-style:none;
            }

            #tabs …
Run Code Online (Sandbox Code Playgroud)

jquery this javascript-events

142
推荐指数
4
解决办法
11万
查看次数

你如何检测清除"搜索"HTML5输入?

在HTML5中,search输入类型在右侧显示一个小X,将清除文本框(至少在Chrome中,可能是其他文件框).有没有办法检测这个X在javascript或jQuery中被点击的时间,比如检测到什么时候单击该框或进行某种位置点击检测(x-position/y-position)?

javascript jquery events html5 javascript-events

135
推荐指数
7
解决办法
8万
查看次数

当元素失去焦点时运行JavaScript

我有一个标准的HTML输入,我想在失去焦点时运行JavaScript代码.可悲的是,我的谷歌搜索没有透露如何做到这一点.

为了说清楚,我正在寻找一种方法来做到这一点:

<input type="text" name="name" value="value" onlosefocus="alert(1);"/>
Run Code Online (Sandbox Code Playgroud)

html javascript javascript-events

133
推荐指数
4
解决办法
17万
查看次数

HTML <input type ='file'>文件选择事件

假设我们有这个代码:

<form action='' method='POST' enctype='multipart/form-data'>
    <input type='file' name='userFile'><br>
    <input type='submit' name='upload_btn' value='upload'>
</form>
Run Code Online (Sandbox Code Playgroud)

结果如下:

图像显示浏览和上传按钮

当用户单击"浏览..."按钮时,将打开文件搜索对话框:

显示选定文件的文件搜索对话框的图像

用户将通过双击文件或单击"打开"按钮来选择文件.

是否有一个Javascript事件,我可以用来在选择文件后收到通知?

html javascript javascript-events

131
推荐指数
6
解决办法
18万
查看次数

如何使用JavaScript模拟鼠标点击?

我知道这个document.form.button.click()方法.但是,我想知道如何模拟onclick事件.

我在Stack Overflow上找到了这个代码,但我不知道如何使用它:(

function contextMenuClick()
{
    var element= 'button'

    var evt = element.ownerDocument.createEvent('MouseEvents');

    evt.initMouseEvent('contextmenu', true, true,
         element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
         false, false, false, 1, null);

    element.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)

如何使用JavaScript触发鼠标单击事件?

javascript javascript-events

126
推荐指数
6
解决办法
22万
查看次数

119
推荐指数
4
解决办法
9万
查看次数

拦截页面退出事件

在我的系统中编辑页面时,用户可能决定导航到另一个网站,这样做可能会丢失他们未保存的所有编辑内容.

我想拦截任何转到另一个页面的尝试,并提示用户确保他们希望这样做,因为他们可能会丢失他们当前的工作.

Gmail以非常类似的方式执行此操作.例如,撰写新电子邮件,开始在邮件正文中键入内容并在地址栏中输入新位置(比如twitter.com或其他内容).它会提示"你确定吗?"

想法如何复制这个?我的目标是IE8,但也希望与FF和Chrome兼容.

javascript internet-explorer javascript-events

115
推荐指数
3
解决办法
14万
查看次数