小编Nic*_*ver的帖子

jQuery事件处理程序不在IE中触发

我有一个页面上的项目列表,其中包含一组MoveUp,MoveDown和Delete控件.

默认情况下,控件位于隐藏列表的顶部.当您将鼠标悬停在项目行上时,我会使用jquery选择控件

//doc ready function:
..
var tools = $('#tools');
$('#moveup').click(MoveUp);
$('#movedn').click(MoveDn);
$('#delete').click(Delete);
..
$('li.item').mouseover(function(){
    $(this).prepend(tools);
});
Run Code Online (Sandbox Code Playgroud)

这在Firefox中运行良好..工具进入当前行,click事件调用ajax函数.但是,在IE6和IE7中没有发生任何点击.我尝试在mouseout上取消绑定并重新绑定每个鼠标悬停..但无济于事.

我还研究了javascript以外的各种原因(例如透明的png冲突,z-index,position:absolute)..也没有找到解决方案.

我最终需要为每个项添加一个工具行,并在鼠标上/下显示/隐藏.同样适用 - 唯一的挫折是我的页面上有更多'工具'标记.

有没有人知道为什么IE移动对象后忽略/丢弃/杀死鼠标事件(使用前置)?为什么事后重新绑定事件也没有效果?在我放弃之前,让我生气了将近2个小时.

javascript jquery javascript-events jquery-1.3

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

从选择框中删除重复的条目

我将如何使用jQuery删除重复项

        <option value="English">English</option>
        <option value="English">English</option>
        <option value="English">English</option>
        <option value="Geology">Geology</option>
        <option value="Geology">Geology</option>
        <option value="Information Technology">Information Technology</option>
        <option value="Music">Music</option>
        <option value="Music">Music</option>
        <option value="Zoology">Zoology</option>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

.checked = true无法使用jquery $ function

我想在单击按钮时选中一个复选框.

<form action="" method="post" id="form2">
    <input type="checkbox" id="checkone" value="one" name="one" />
    <input type="button" value="Click me" id="buttonone"/>
</form>
Run Code Online (Sandbox Code Playgroud)

当我尝试以下操作时,复选框未被选中

$('#buttonone').click(function() {
    $('#checkone').checked=true;
});
Run Code Online (Sandbox Code Playgroud)

然后我试过:

$('#buttonone').click(function() {
    document.getElementById('checkone').checked=true;
});
Run Code Online (Sandbox Code Playgroud)

这次复选框被选中了.为什么不使用jquery $函数进行选择?

html javascript forms jquery properties

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

ASP.NET MVC使用jQuery ajax渲染局部视图

我有一个控制器动作,呈现局部视图:

public ActionResult Details(int id)
{
    DetailsViewModel model = 
        ModelBuilder.GetDetailsViewModel(id, _repository);
    return PartialView("Details", model);
}
Run Code Online (Sandbox Code Playgroud)

我将返回的内容加载到动态元素中,如下所示:

$container = appendContainer(); // adds a div to the dom with the correct id
$container.load("MyController/Details", function(response, status, xhr) {
    if (status != "success") {
        $(container).html('an error has occured');
    }
});
Run Code Online (Sandbox Code Playgroud)

所以这会创建一个div,然后将返回的内容加载到该div中.

我想略微改变它,以便只有在对控制器的调用成功时才创建容器div.

所以:

  1. jQuery调用控制器动作
  2. controller返回PartialView,如果未找到Id,则返回null
  3. 如果返回PartialView,则会创建容器并使用返回的内容加载容器.
  4. 如果控制器未找到Id,则不会创建任何内容并显示警报.

我很感激有关如何最好地实现这一点的任何指示.

ajax asp.net-mvc jquery partial-views

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

组合的错误:jQuery 1.4,ajax/json,Firebug Lite和IE 8

我刚刚得出结论,无论我怎么做,jQuery的ajax调用都无法在IE 8中使用JSON数据.我发现我可以使用jQuery 1.3.2库来修复这个问题,但1.4根本就不会用JSON ajax请求来玩.即使返回的JSON数据非常简单,也不存在格式无效的问题.例如:

{"x":"a"}
Run Code Online (Sandbox Code Playgroud)

这与我是否使用Java servlet返回JSON数据或简单的固定文本文件无关.无论dataType还是contentType.无论GET还是POST.无论我使用$ .ajax还是$ .getJSON.这一切都适用于Firefox 3.6.

然后我突然意识到要参考Firebug Lite和IT WORKED!突然间问题消失了.无论是在响应中(在servlet中)修改contentType,还是在请求中指定的dataType,它都可以工作.

如果我再次链接到Firebug Lite,问题就会返回...即使我的代码从未实际使用它.

有没有人见过这种行为,有没有人有修复或解决方法?我不想再停止使用Firebug Lite了.感谢您的任何见解.同样,只有在组合jQuery 1.4,Firebug Lite,JSON数据和IE 8时才会出现问题.

这是对servlet的ajax调用,如果重要的话:

$.ajax({
 cache: false,
 url:"http://localhost:8080/Performance_Reporting/TestServlet",
 type:"GET",
 contentType: "application/json",
 dataType: "json",
 timeout:30000,
 success: function(d, status, req)
 {
  $("#result").text(d.x);
 },
 error: function(req, status, err)
 {
  $("#result").text(req.responseText);
 }
})
Run Code Online (Sandbox Code Playgroud)

jquery firebug internet-explorer json

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

为什么jquery datepicker不能在textarea上工作,只能在输入上工作

请帮助我,我很无能为力.当我尝试打开jquery UI的日期选择器并将其附加到输入标签时,它完美地工作,但是当我尝试将它附加到textarea时,没有任何事情发生.

<script type="text/javascript">
     $(function() {    $("#${data_picker}").datepicker();  });
</script>

---- This will work ----
<input id="data_picker" />

---- This doesn't work ----
<textarea id="data_picker"></textarea>
Run Code Online (Sandbox Code Playgroud)

为什么???

ps当然他们不在同一页面,它只是输入或页面中的textarea.

jquery jquery-ui datepicker jquery-ui-datepicker

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

JavaScript中的函数调用模式作用域规则

这是一个来自"Javascript - The Good Parts"的工作示例.

function add(x, y){ return x + y};

var myObject = {
    value: 0,
    increment: function (inc) {
        this.value += typeof inc === 'number' ? inc : 1;
    }
};

myObject.increment(2);
document.writeln(myObject.value); 

myObject.double = function (  ) {
    var that = this;    // Workaround.

    var helper = function (  ) {
        that.value = add(that.value, that.value)
    };

    helper(  );    // Invoke helper as a function.
};

myObject.double(  );
document.writeln(myObject.value);    // 4
Run Code Online (Sandbox Code Playgroud)

对于函数调用模式,'this'对象将具有全局引用.但我不能完全理解所提到的解决方案的引擎盖: -

var that = this; …
Run Code Online (Sandbox Code Playgroud)

javascript

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

未捕获的TypeError:属性...不是函数 - 页面加载后

我正在使用跨域Ajax请求到外部API.每隔一段时间它就会失败,并显示控制台消息:

Uncaught TypeError: Property 'photos' of object [object DOMWindow] is not a function
Run Code Online (Sandbox Code Playgroud)

查看返回的JSON,它是有效的JSON,因此它不是外部API的错误.

我无法可靠地重现错误:似乎触发错误的唯一因素是我快速重复地调用请求.

在这种情况下,当用户移动Google地图时(我向地图添加标记),我会调用Ajax请求,如果用户移动得太快,就会发生这种情况.

以下是我的代码的相关部分:

// Code located inside an external JS file referenced inside the head
// Not wrapped inside document.ready - but all the code setting up 
// the map (calling a function which calls a function which adds the 
// tilesloaded listener) *is* inside document.ready
function addMarkers() {
    var pm_url = "http://www.cyclestreets.net/api/photos.json?key=" + MY_KEY;
    $.ajax({
       url: pm_url,
       crossDomain: true, 
       contentType: "application/json",
       dataType: 'jsonp',
       data: pmdata, …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery jsonp

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

谷歌地图视图如何在地图缩放时获得注释的原始点或框架?

我在点击注释时在地图中设置自定义注释引脚我得到了这个方法的调用

(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view NS_AVAILABLE(NA, 4_0)
Run Code Online (Sandbox Code Playgroud)

在那个方法中我想打开popover所以我想要帧格式(MKAnnotationView*)视图我在正常模式下映射时得到正确的帧.

但是当我缩放地图并点击那时的注释时我得到了错误的框架,那时x和y值很大,所以我得到的任何偏移或缩放因子的任何解决方案我都按照那样划分,所以我得到实际框架注释.

iphone xcode objective-c ipad ios

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

jQuery Facebox:发送空输入字段值

我有我的jQuery facebox插件,为我制作灯箱.我点击了一个链接,然后出现了一个好友请求表单.

单击"发送请求"时,表单会生成ajaxcall,但是2个字段不会发送您在其中写入的内容,它只是发送空值.

但如果它不在facebox灯箱内,那么它可以工作并在ajax调用中发送值.

所以facebox.js中的某些东西阻止了字段并向它们发送空值.

我怎么解决这个问题?

这是facebox.js:

    (function($) {
  $.facebox = function(data, klass) {
    $.facebox.loading()

    if (data.ajax) fillFaceboxFromAjax(data.ajax)
    else if (data.image) fillFaceboxFromImage(data.image)
    else if (data.div) fillFaceboxFromHref(data.div)
    else if ($.isFunction(data)) data.call($)
    else $.facebox.reveal(data, klass)
  }

  /*
   * Public, $.facebox methods
   */

  $.extend($.facebox, {
    settings: {
      opacity      : 0,
      overlay      : true,
      loadingImage : 'images/loading.gif',
      closeImage   : 'images/closelabel.png',
      imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
      faceboxHtml  : '\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \ …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-plugins facebox

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