标签: javascript-events

为Polymer Custom-Element创建自定义事件

我一直试图创建一个事件,在某些条件下(更一般情况下)被触发,但我没有找到办法,至少在Polymer的官方文档中没有找到处理事件的方法

https://www.polymer-project.org/0.5/articles/communication.html

自定义元素侦听另一个事件,因此他希望满足条件以抛出内部事件.

这是一个小描述性的例子:

的index.html

...
<my-element></my-element>
...
<script>
     var ele = document.querySelector("my-element");
     ele.addEventListener("myCustomEvent",
                 function(){
                     // some action
                     ...
             })
</script>
Run Code Online (Sandbox Code Playgroud)

此代码描述了谁将监听事件("myCustomEvent")并引爆了一个动作.


另一方面是自定义元素的实现

<polymer-element name="my-element">
  <template>
      <other-custom-element id="foo"></other-custom-element>
  </template>
  <script>
   Polymer("my-element", {
        ready: function(){
        var foo = this.$.foo;
        foo.addEventListener("AnotherEvent" , function(){
            ...
            if(condition){
                ...
                // in this part I need to fire the event 
                // "myCustomEvent"
            }
        })
        }
    })
  </script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)

我的问题是在条件完成时触发事件,并在外面侦听该事件(在index.html中)

参考

  1. https://www.polymer-project.org/0.5/articles/communication.html
  2. https://www.polymer-project.org/0.5/docs/polymer/polymer.html#fire

javascript javascript-events polymer

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

在无法正常使用的类上使用addEventListener

我想用我的脚本转换addEventListener与getElementById上var一个getElementByClassName但这不起作用。如何解决?

看我的代码

Javascript:

var input = document.getElementByClassName('myClass');

_slider.noUiSlider.on('update', function( values, handle ) {

    var value = values[handle];

    if ( handle ) {
        input.value = Math.round(value);
});

input.addEventListener('change', function(){
    _slider.noUiSlider.set([null, this.value]);
}, false);
Run Code Online (Sandbox Code Playgroud)

HTML:

<input type="number" class="myClass">
Run Code Online (Sandbox Code Playgroud)

如果我找到带有div的div,则此脚本可以完美运行ID,但不能使用CLASS。

javascript javascript-events

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

Windows onload事件不会在ipad ios 8.4中触发

我面临以下奇怪的问题:

功能:
当我打开我的网站页面,其中有许多图像并使用javascript/jquery用于客户端功能.在单击每个图像时,所有其他图像都会更改其不透明度,所选图像会显示<div>包含图像的一些信息和视频.

  1. 我使用了jquery unveil,只有在页面上触发了一个scroll事件后才会加载所有图像.直到它,它显示一个"加载"图像.
  2. 我在window.onload事件上添加了一个javascipt,以便在<div>单击图像时调整元素的大小.还有一些javascript可以识别浏览器并相应地设置视频标记源.
  3. 所有图像都在数据主义内部呈现,并从数据库绑定.
  4. 由于unveil仅在滚动事件之后加载图像,我在页面加载时添加了一个代码以人工地按像素滚动页面.

问题:
我在Chrome或Safari上打开iPad(iOS 8.4)中的同一页面.我的所有javascript window.onload都不会触发.

ASPX页面:

<script type="text/javascript" src="/js/jquery.unveil.js"></script>
<asp:DataList ID="dlPersonList" runat="server" OnItemDataBound="dlPersonList_OnItemDataBound"
RepeatDirection="Horizontal" RepeatLayout="Flow">
  <ItemTemplate>
    <div class="itemImage">
       <asp:HyperLink ID="hypPersonPicture" runat="server">
            <asp:Image ID="imgPersonPicture" runat="server" CssClass="lazy" />
       </asp:HyperLink>
    </div>
    <asp:Panel class="person-detail" ID="pnlpersonDetail" runat="server">
       <div class="person-content detailView">
        <%--Some text and other controls--%>          
        <asp:Panel ID="pnlVideo" runat="server">
            <div class="video-content">
                  <video id="personVideo" controls="controls" preload="none"> 
                        <%--Video source elements--%> 
                  </video>
            </div>
        </asp:Panel>
       </div>
   </asp:Panel>
  </ItemTemplate>
</asp:DataList>
Run Code Online (Sandbox Code Playgroud)

CS代码:

protected void Page_Load(object sender, EventArgs e) …
Run Code Online (Sandbox Code Playgroud)

jquery javascript-events ipad jqmigrate ios8.4

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

如何获取浏览器窗口的高度,然后将div的高度设置为该值

所以,当我打开一个页面时,我想获得全高背景图像. 像这样

我还没有开始使用jquery,所以如果你能帮助我使用基本的js.这是我到目前为止所尝试的,但它没有用.

<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="assets/css/style.css">
    <script type="text/javascript" src="assets/js/basic.js"></script>
    <meta charset="UTF-8"> 
  </head>
  <body>
    <header>
      <div id="front-page" class="window_height_picture" onload="get_window_height()">
      </div>
    </header>
  </body>   
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的.js文件:

function get_window_height() {
    var window_height = window.innerHeight;
    document.getElementById('front-page').style.height = window_height + 'px';
}
Run Code Online (Sandbox Code Playgroud)

我确实搜索过这个,但找不到我想要的东西.你能告诉我哪里错了,或者给我一个更好的代码.

javascript css height html5 javascript-events

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

禁用已选中的字段

我试图在检查复选框时禁用字段集中的2个选择字段.我也尝试了类似getElementById或者方法getElementsByTagName,.attr()但它不起作用..

我希望加入disabled到fieldset喜欢这个检查就当:

<fieldset id="test" disabled>
    <div class="col-lg-6">
        <?php echo $this->Form->input('frequency_remarks'); ?>
    </div>
    <div class="col-lg-6">
        <?php echo $this->Form->input('duration_remarks'); ?>
    </div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

复选框:

<div class="checkbox">
    <label for="CommentFrequencyOk">
        <input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
        <input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" /> Frequency
    </label>
</div>
Run Code Online (Sandbox Code Playgroud)

剧本:

$('#CommentFrequencyOk').checked(function () {
    $('#test').setAttribute('disabled');
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery javascript-events

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

只需在JQUERY类中单击一下

我有一个链接,将通过ajax加载一些内容.

我的问题是,我不想删除文本"加载评论",我只是想在这个类中不允许更多点击.

<a href="javascript:;" class="showcomments" id="'.$idf.'">Load comments</a>
Run Code Online (Sandbox Code Playgroud)

jQuery的

var Progressajax = false;
$(function() {
     $(".showcomments").click(function(){

               if(Progressajax) return;
                   Progressajax = true;

    var element = $(this);
    var id = element.attr("id");

    Progressajax = false;
           alert("ok");
           $(data).hide().prependTo('.varload'+id).fadeIn(1000);
         //$(element).remove();
        $(element).removeAttr("href");
        $(element).removeClass('showcomments');
    }); 
    });
Run Code Online (Sandbox Code Playgroud)

我只是想第一次看到OK.我怎样才能删除这个课程?

$(element).removeClass('showcomments');
Run Code Online (Sandbox Code Playgroud)

这不行......

http://jsfiddle.net/qsn1tuk1/

javascript ajax jquery event-handling javascript-events

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

如何在附加.bind(this)的回调上删除EventListener

如果我做

document.addEventListener("mousedown", this.foo);
Run Code Online (Sandbox Code Playgroud)

然后在内部功能this.foo 然后删除它

document.removeEventListener("mousedown", this.foo);
Run Code Online (Sandbox Code Playgroud)

然后它工作.

但是,如果我做document.addEventListener("mousedown",this.foo.bind(this));

然后该功能不会被删除.

有什么我能做的吗?我必须在foo中拥有正确的上下文.

javascript events javascript-events

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

React事件处理程序中的event.target null

给出以下代码:

var
  React = require("react")
;

class ControlText extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      value: ""
    };
  }

  update() {
    console.log(event);
    this.setState({value: event.target.value});
  }

  render() {
    console.log(this.state);
    var value = this.state.value;
    return <input type="text" value={value} onChange={this.update.bind(this)} />
  }
}

module.exports = ControlText;
Run Code Online (Sandbox Code Playgroud)

每次我登录事件对象的update(),它返回一个对象target: null,并this.state.value更新从""到undefined.这段代码与Forms文档上的示例差异很小,为什么我似乎无法获得事件目标?

javascript event-handling javascript-events reactjs

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

为什么我的JS函数执行onload而不是onchange?

这是代码:

window.onload = function() {
    oldonload && oldonload();

    function test() {
        alert("meh");
    }    

    $('input[type=file]').change(test());
}
Run Code Online (Sandbox Code Playgroud)

代码非常简单,test()只有在input[type=file]更改时才会调用.但是test()每当我的页面加载时都会被调用.

这里发生了什么?只有当用户与输入元素交互时,我才会如何执行该功能?

javascript jquery input javascript-events

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

如何使用JQuery填充React生成的输入字段

我正在尝试编写一个书签来自动填充表单,以简化手动测试.该网站在React中实施.我尝试过使用JQuery,例如:

$("#emailAddress").val("bob@example.com").changed()
Run Code Online (Sandbox Code Playgroud)

虽然该input字段在浏览器中明显更新,但看起来该字段未被识别为已更改,因为表单提交时验证失败,表示数据丢失.

有没有一种可行的方法来使用ad-hoc JS自动填充React表单字段,而不更改任何源代码?

(注意:我理解这种直接操作不是在一般应用程序开发中使用React的正确方法.在这里,我正在寻找任何解决方案,无论多么简单,都要简化特殊的手动测试).

javascript jquery javascript-events reactjs

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