相关疑难解决方法(0)

动态创建元素的事件绑定?

我有一些代码,我循环遍历页面上的所有选择框,并将.hover事件绑定到它们,以便在它们的宽度上做一些麻烦mouse on/off.

这发生在页面准备就绪并且工作得很好.

我遇到的问题是,我在初始循环后通过Ajax或DOM添加的任何选择框都不会受到事件限制.

我找到了这个插件(jQuery Live Query Plugin),但在我用插件添加另外5k到我的页面之前,我想知道是否有人知道这样做的方法,无论是直接使用jQuery还是通过其他选项.

javascript jquery events unobtrusive-javascript

1677
推荐指数
21
解决办法
79万
查看次数

在jQuery中,如何将事件附加到动态html元素?

假设我有一些jQuery代码,它将事件处理程序附加到具有类"myclass"的所有元素.例如:

$(function(){
    $(".myclass").click( function() {
        // do something
    });
});
Run Code Online (Sandbox Code Playgroud)

我的HTML可能如下:

<a class="myclass" href="#">test1</a>
<a class="myclass" href="#">test2</a>
<a class="myclass" href="#">test3</a>
Run Code Online (Sandbox Code Playgroud)

这没有问题.但是,请考虑是否在将来某个时间将"myclass"元素写入页面.

例如:

<a id="anchor1" href="#">create link dynamically</a>
<script type="text/javascript">
$(function(){
    $("#anchor1").click( function() {
        $("#anchor1").append('<a class="myclass" href="#">test4</a>');
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,当用户点击#anchor1时会创建"test4"链接.

"test4"链接没有与之关联的click()处理程序,即使它具有class ="myclass".

知道如何解决这个问题吗?

基本上,我想编写一次click()处理程序,并将其应用于页面加载时出现的内容和稍后通过Ajax/DHTML引入的内容.

javascript jquery events dhtml

520
推荐指数
5
解决办法
47万
查看次数

Javascript单击事件处理程序 - 如何获取对单击项目的引用?

我的HTML:

<div id="x" onclick="clickHandler(event)">
   <div id="button1">This turns green</div>
   <div id="button2">This turns blue</div>
</div>
Run Code Online (Sandbox Code Playgroud)

首先,为什么我应该将"事件"传递给点击处理程序并且事件是某种系统关键字?此外,由于在容器div上标识了单击处理程序,我如何知道单击了哪个按钮?

html javascript click event-handling

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

Bootstrap onClick按钮事件

这似乎是一个愚蠢的问题,但只是得到了bootstrap并且它没有在网站上给出关于向按钮添加Javascript回调的任何示例...

尝试将我的按钮设置为id标志然后

<div class="btn-group">
  <button id="rectButton" class="btn">Rectangle</button>
  <button class="btn">Circle</button>
  <button class="btn">Triangle</button>
  <button class="btn">Line</button>
  <button class="btn">Curve</button>
  <button class="btn">Pic</button>
  <button class="btn">Text</button>
  <button class="btn">Gradient</button>
</div>
Run Code Online (Sandbox Code Playgroud)

我想为Rectangle按钮添加一个回调...

$('#rectButton').on('show', function (e) {
    //ACTION
})
Run Code Online (Sandbox Code Playgroud)

无法获得引导回调的重点.

我在Web上找到的所有内容都面向Rails + Bootstrap ...没有bootstrap和JS.

javascript jquery-events

17
推荐指数
1
解决办法
12万
查看次数

jQuery.on()如何工作?

我还没有看到这个函数的来源,但我想知道,它是否像这样工作:

  1. 通过其选择器选择元素
  2. 将提供的事件处理程序委托给他们
  3. setInterval在该选择器上运行并不断取消委托,然后重新委派相同的事件

或者对此有一个纯JavaScript DOM解释?

jquery javascript-events event-delegation jquery-on

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

香草JavaScript事件代表团

在vanilla js中进行事件授权的最佳方式(最快/最合适)是什么?

例如,如果我在jQuery中有这个:

$('#main').on('click', '.focused', function(){
    settingsPanel();
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能将其翻译成香草js?或许有.addEventListener()

我能想到这样做的方式是:

document.getElementById('main').addEventListener('click', dothis);
function dothis(){
    // now in jQuery
    $(this).children().each(function(){
         if($(this).is('.focused') settingsPanel();
    }); 
 }
Run Code Online (Sandbox Code Playgroud)

但这似乎效率低下,特别是如果#main有很多孩子.

这是正确的方法吗?

document.getElementById('main').addEventListener('click', doThis);
function doThis(event){
    if($(event.target).is('.focused') || $(event.target).parents().is('.focused') settingsPanel();
}
Run Code Online (Sandbox Code Playgroud)

javascript

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

jquery click事件不适用于动态字段

可能重复:
jQuery - Click事件对动态生成的元素不起作用

我只有一个可点击的添加按钮,可以添加新的表格行.表行包括删除按钮.我注意到,当我动态添加新行时,按钮不会触发click事件,但如果页面加载时该按钮存在,那么它可以正常工作.我怎么能纠正这个?

使用Javascript:

$('#btnAdd').click(function () {

        var newTr = '<tr><td><input id="column_0" name="column[0]" style="width:40%;" type="text" /> <img alt="Delete-icon24x24" class="btnDel clickable" id="" src="/assets/delete-icon24x24.png" /></td></tr>';
        $('#columns').append(newTr);
    });

$('.btnDel').click(function () {
    alert('hey');
    console.log('test');
    var row = $(this).closest("tr");
    alert(row);

    row.remove();
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery onclick

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

如何在Rails中使用Coffeescript绑定jQuery onclick事件?

我意识到我可能需要全局声明onclick事件,但我试图避免--bare在编译时使用标记.

这是我试图开始工作的代码......

jQuery ->
  $('.tabs_image').click ->
    $(this).addClass('tabs_selected')
    $('.tabs_video').removeClass('tabs_selected')
    $('#image_upload_form').show()
    $('#video_upload_form').hide()
    return

  $('.tabs_video').click ->
    $(this).addClass('tabs_selected')
    $('.tabs_image').removeClass('tabs_selected')
    $('#image_upload_form').hide()
    $('#video_upload_form').show()
    return

  return
Run Code Online (Sandbox Code Playgroud)

一旦页面在浏览器Chrome中刷新(刷新点击),它就可以正常工作.

我曾尝试$ =>,$(document).ready ->和$(document).ready =>.

jquery ruby-on-rails coffeescript turbolinks

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

在输入字段上捕获更改事件,动态添加到Jquery Datatables表

我有一个ajax调用,它使用以下代码为响应中的每个记录向数据表添加一些行:

strAppName = data.Application_Name
maintCost = '<input class="maintCostField" appid="' + data.Application_ID + '" type="text" placeholder="$">';

$('#myReport').dataTable().fnAddData([
    strAppName,
    maintCost,
    etc,
    etc
]);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以下选择器/事件来捕获对文本框的更改,但它们都没有触发.它们在document.ready部分......

$(".maintCostField").bind('change',function () {
    val = $(this).val();
    app = $(this).attr('appid');
    alert('Updating app# ' + app + ' with ' + val);
});


$(".maintCostField").on('change',function () {
    val = $(this).val();
    app = $(this).attr('appid');
    alert('Updating app# ' + app + ' with ' + val);
});
Run Code Online (Sandbox Code Playgroud)

(我知道这个已被弃用)

$(".maintCostField").live('change',function () {
    val = $(this).val();
    app = $(this).attr('appid');
    alert('Updating app# ' + app + …
Run Code Online (Sandbox Code Playgroud)

jquery dom onchange event-handling

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

JQuery .on("click",function())不起作用

当我选中复选框时,我试图解雇JQuery.起初我意识到我的JQuery只适用于静态元素.我阅读了几篇文章,发现我需要.on("click,function())才能为动态添加的元素触发相同的javascript.

但是,这种方法对我来说仍然不起作用.有人可以帮忙吗?谢谢.

$(document).ready(function(){
    $("input[name='todo']").on('click', function(){
    var isChecked = this.checked
           if (isChecked == true){
          $(this).next().remove();
          $(this).remove(); 
        }
        if (isChecked == false)
        {
        alert("checkbox is NOT checked");
        }

        });

    });
Run Code Online (Sandbox Code Playgroud)

我的示例应用程序:http://jsfiddle.net/JSFoo/7sK7T/8/

javascript jquery

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