相关疑难解决方法(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万
查看次数

使用$ .each对Json数据进行jquery循环

我在一个名为data的变量中返回了以下JSON.

这是回归的JSON ......

[ 
{"Id": 10004, "PageName": "club"}, 
{"Id": 10040, "PageName": "qaz"}, 
{"Id": 10059, "PageName": "jjjjjjj"}
]
Run Code Online (Sandbox Code Playgroud)

我试图使用$ .each遍历集合,但我遇到的问题是警报显示未定义.我尝试了很多不同的语法,但似乎无法解决这个问题.

我正在使用的JQuery是

$.each(data, function(i, item) {
    alert(item.PageName);
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我正确的方向吗?

编辑 这是我用来获取数据的代码

$.getJSON('/Cms/GetPages/123', null, function(data) {
  fillSelect(data);
});
Run Code Online (Sandbox Code Playgroud)

这是在回叫时调用的函数

function fillSelect(data) {
  alert(data);
  $.each(data, function(i, item) {
    alert(item.PageName);
  });
}
Run Code Online (Sandbox Code Playgroud)

编辑2 这有点令我困惑,根据它应该工作的文档,但它没有.根据提琴手的标题显示: -

Content-Type: application/json; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

并且JSON在上面完全正确.如果这有任何不同,我正在使用chrome.将在IE和FF中测试....

编辑3

使用$ .get生成

"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": …
Run Code Online (Sandbox Code Playgroud)

foreach jquery json

154
推荐指数
4
解决办法
63万
查看次数

Jquery单击事件未在使用jquery动态创建的元素上触发

我正在尝试创建一个简单的功能,用户从下拉列表中选择一些值,然后单击添加按钮以标记的形式在下面的div中添加所选项目.

每个添加的标记都有一个删除锚点,单击它时会删除标记.

现在,当点击添加按钮时,正确插入了标签,但是当我点击标签上的删除按钮时,点击事件未触发.

但是,如果我使用与动态生成的标记完全相同的标记对某些标记进行硬编码,则删除标记的click事件会正确触发,并且标记将按照我的意愿删除.

HTML:

    <select id="ddlTagName">
    <option value="1">Tag One</option>
    <option value="2">Tag Two</option>
    <option value="3">Tag Three</option>
</select>
<input id="btnInsertTag" type="button" value="Add"/>
<br/>

<div id="TagsHolder">
  <span class="tag">
      <span>Tag One HardCoded </span>
      <a class="remove">X</a>
  </span>

  <span class="tag">
      <span>Tag Two HardCoded </span>
      <a class="remove">X</a>
  </span>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

    $("#btnInsertTag").click(function () {
    var selectedTagText = $("#ddlTagName option:selected").text();
    var selectedTagValue = $('#ddlTagName').val();
    var generateMarkup = '<span class="tag" data-value="' + selectedTagValue + '"><span>' + selectedTagText + ' </span><a class="remove">X</a></span>';
    $("#TagsHolder").append(generateMarkup);
});

$(".remove").click(function () {
    alert('click event triggered'); …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

html表单重置没有触发select onchange

我有一个form领域需要根据我的变化select.但是,当我打resetselect重置回默认,但onchange该事件select不会被触发.反正有没有这样我可以添加到我的JavaScript?

我正在使用按钮重置 type="reset"

    $('#newHistoryPart select[name="roundType"]').on('change', function (data) 
    {
      $(".answerType").hide();
      selected = $(this).find("option:selected").val();
      roundTypeChange(selected); 
    });
Run Code Online (Sandbox Code Playgroud)

html javascript forms jquery

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

防止触发onclick

我正在处理html中的表单提交。请看下面的代码

<form id="form1">
 <button id="btn1" onclick="clicked();">Submit</button>
</form>
<script>
    $("#btn1").click(function (event) {
        alert("event triggered");
        if(some_condition == true){
             // stop firing onclick method but it always submits the form
             event.stopImmediatePropogation(); // not working
             event.preventDefault(); // not working
             event.stopPropogation(); // not working it's for bubbled events
         }
     });
     function clicked(){ alert("clicked me"); }
</script>
Run Code Online (Sandbox Code Playgroud)

我想停止clicked()触发附加到内联onclick属性的函数。我想运行我的jquery click函数,如果出现问题,我不想触发onclick,但它总是运行clicked()函数。谁能帮我。任何帮助是极大的赞赏。

javascript jquery

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