标签: javascript-events

什么是使用jQuery创建HTML元素并将侦听器绑定到它的推荐方法?

目前,我使用以下内容实现此目的:

var myElem = "<tr id='tr-1'><td>content</td></tr>";
$("#myTable").append(myElem);
$("#tr-1").click(function() {
  // blah blah
});
Run Code Online (Sandbox Code Playgroud)

传统上,当我不使用jQuery时,我曾经做过这样的事情:

var myElem = document.createElement(...);
var myTable = document.getElementById("myTable");
myTable.appendChild(myElem);
myElem.onclick = function() {
  // blah blah
}
Run Code Online (Sandbox Code Playgroud)

问题是,在第二种方法中我已经有了一个参考myElem,我不必扫描DOM($("#tr-1"))来找到它,就像jQuery方法一样,因此它应该更快,特别是在大页面中.是不是有更好的jQuery-ish方法来完成这项任务?

javascript jquery dom javascript-events

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

提交嵌套表单,奇怪的行为

我有一个带有表单的广告横幅,第三方网站所有者使用此横幅抓取此代码,并在该网站上显示此横幅.

由于一些使用此横幅的<form>网站在整个网站上都有包装,我发现横幅表单不提交,而是提交外部表单.

这是代码:

  <form onSubmit="return alert('outer form submitted')">

    <!-- only if i add this empty form it submits the inner -->
         <form></form>
    <!-- End Empty form -->

    <!-- inner form -->
      <form onSubmit="return alert('inner form submitted')" > 
           <input type="submit" /> 
      </form> 
    <!--end  inner form -->

 </form> 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,只有我<form> 在内部之前添加一个空,<form>它才会提醒(提交)内部,否则它会提交外部.

为具有表单的网站编写横幅广告的最佳方法是什么?

html javascript forms javascript-events nested-forms

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

Javascript函数未被调用

我试图在我的mvc视图上调用脚本函数,如下所示.但它没有发生.它背后可能是什么原因?

<input type="text" id="hdnTemp" value="xyz" onload="test();" />                    
                    <script type="text/javascript">
                      function test() {
                        alert();
                      }
                    </script>
Run Code Online (Sandbox Code Playgroud)

谢谢,卡皮尔

javascript javascript-events

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

使用javascript(jQuery)设置值时TextBox onchange

    $(document).ready(function() {
        $('#text').live('change', function() {
            alert('hello');
        });
        $('#button').live('click', function() {
            $('#text').val('some text');
        });
    });  

    <div>
        <input type="button" id="button" value="Click Me" />
        <input type="text" id="text" />
    </div>
Run Code Online (Sandbox Code Playgroud)

change单击按钮后,如何在文本框触发器上创建该功能?谢谢

jquery textbox input onchange javascript-events

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

为什么这给了不同的月份

以下代码

var unixDate = new Date('07/28/2010');
    var unixMonth = unixDate.getMonth();
    var unixDay = unixDate.getDate();
    var unixYear = unixDate.getFullYear();
    alert(filterDate.value);
    alert(unixMonth);
    alert(unixDay);
    alert(unixYear);
Run Code Online (Sandbox Code Playgroud)

应该给我一个月07,但它谴责06 ......那是为什么

javascript javascript-events javascript-framework

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

页面停止滚动时触发功能

如何在浏览器窗口停止滚动时触发功能?通过鼠标滚轮,单击,空格键或箭头键?这样的行动有什么事吗?我曾尝试在线搜索但无法获得任何解决方案.我对jQuery解决方案很好.

javascript jquery javascript-events

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

我无法访问dom

我正在使用jquery $ .ajax来加载我的表行数据

<table id='row-data'>
    <tr><td>1001</td></tr>
    <tr><td>1322</td></tr>
    <tr><td>1551</td></tr>
    <tr><td>2341</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

在上面的代码我加载所有与$ .ajax,但加载数据,当我触发任何事件然后它不工作,所以如何可能访问这些行请提供我这个问题的解决方案

javascript ajax jquery events javascript-events

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

什么是event.clientY?

我有这个代码,想知道所有那些event.client做什么?

  document.body.ondblclick = function(){
    var dclick = false;
    if(event.clientX > 8 && event.clientX < 204){
        if((event.clientY > 88 && event.clientY < 129) ||
            (event.clientY > 129 && event.clientY < 171) ||
            (event.clientY > 172 && event.clientY < 212) ||
            (event.clientY > 213 && event.clientY < 255) ||
            (event.clientY > 256 && event.clientY < 297) ||
            (event.clientY > 297 && event.clientY < 339)){
            dclick = true;
        }
    }
    }
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events

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

chrome.extensions.onRequest.addListener不会调试?

我到处寻找解决方案......即使谷歌自己的代码示例也不起作用.有人请向我解释如何调试事件监听器或至少如何使Console.Log()工作!

查看Google的示例:http://code.google.com/chrome/extensions/messaging.html

这是我正在测试的...在我的background.js上(从我的background.html引用)我有这个:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    console.log(sender.tab ? "from a content script:" + sender.tab.url : "from the extension");
    if (request.greeting == "hello")
      sendResponse({farewell: "goodbye"});
    else
      sendResponse({}); // snub them.
  });
Run Code Online (Sandbox Code Playgroud)

在我的popup.js(从我的popup.html引用)我有这个:

chrome.extension.sendRequest({greeting: "hello"}, function(response) {
  console.log(response.farewell);
});
Run Code Online (Sandbox Code Playgroud)

考虑到我的清单中有以下权限:

"permissions": ["http://*/", "tabs"],
Run Code Online (Sandbox Code Playgroud)

我的内容脚本定义如下:

 "content_scripts": 
 [
  {
   "matches":   ["http://*/*", "https://*/*"],
   "js":    ["scripts/background.js"],   
   "all_frames":  true
  }
 ]
Run Code Online (Sandbox Code Playgroud)

为什么我无法从console.log获取任何信息或调试到事件中?我得到的反应很好......但是我无法调试?

谢谢您的帮助!

google-chrome javascript-events

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

为什么Javascript全局变量不是全局的?

我有一个外部的js文件处理删除一些元素.根据结果​​,我将确定是否需要刷新页面.

var deleted = 0; // first assume not deleted 

$(function() {
    $("#action a.action-delete").click(function() {
        var id = $(this).parent().parent().attr("id");
        $.get("modify-sale.php", { "id" : id, "action" : "delete" }, function (data) { deleted = 1;  }, "text");
        if (deleted) return true; // if success then refresh
        else return false; // else does not refresh
    });
Run Code Online (Sandbox Code Playgroud)

没问题是我无法deleted在jQuery事件处理程序中更改全局变量.我可以确保删除操作成功,但此变量不会将其值更改为1.

为什么?

javascript jquery javascript-events

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