为什么这个jquery函数不适用于iPhone OS?

时间:2011-05-05 05:20:27

标签: javascript jquery jquery-selectors mobile-safari mobile-phones

以下jquery在大多数桌面浏览器中都能正常工作,但在android和iphone浏览器上失败:

$('#submit_event').live('click', function() {

    if ($("#event_name").attr("value") != "" && $("#event_details").attr("value") != ""){
        sendEvent($("#event_name").attr("value"), $("#event_details").attr("value"));
        $('#response_container').append("<div class='event_title'>"+$("#event_name").attr("value")+"</div><div class='event_details'>"+$("#event_details").attr("value")+"<div class='comment'>Comment</div><textarea class='comment_area'></textarea><div id='post_comment'>Post</div></div>");
    }
});

#submit_event只是div的ID。单击时,它在桌面浏览器上运行该功能,但不运行android或iphone。

的问候,

泰勒

4 个答案:

答案 0 :(得分:0)

您可以尝试更高效的代码:

$('#submit_event').live('click', function() {

    var eName = $("#event_name").attr('value');
    var eDetails = $("#event_details").attr('value');

    if (eName && eDetails) {
        sendEvent(eName, eDetails);
        $('#response_container').append("<div class='event_title'>" +
            eName + 
            "</div><div class='event_details'>" +
            eDetails + 
            "..."
        );
    }
});

答案 1 :(得分:0)

好的,我找到了答案,

这只是移动游猎中的一个错误。

您需要做的就是将onclick =''添加到您将实时函数绑定到的任何元素上,它将起作用。

答案 2 :(得分:0)

是.live事件不适用于像td这样的元素。它将使用html元素,如锚标签,按钮等。因此,如果您想使用jQuery的.live事件应用click事件,您需要首先在您的td元素上使用jquery .attr方法添加onclick =“”属性,然后应用。 live事件用于将事件与td元素绑定。有关更多详细信息,请访问以下博客

http://skillfulness.blogspot.com/2010/11/workaround-for-jquery-live-event.html

答案 3 :(得分:0)

如果你也使用jquery mobile,你可能想尝试

$('#submit_event').live('tap', function() {}