簡體   English   中英

jQuery Live是否適用於Safari?

[英]Does jQuery Live work on Safari?

我剛剛在一小時前問過這個問題但是關於IE8,我被告知JQuery Live處理程序不支持“更改”所以我切換到“點擊”,這解決了我的問題,現在我發現Safari不起作用點擊一些奇怪的原因,任何人都知道為什么?

所以我在想,我可以同時擁有兩者嗎?

$('select.htt, select.hst').live('click', function() {
    var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);         
    $('#fancy_div span.yellow2').html(channels + ' Channels');
});

並改變(適用於野生動物園)

$('select.htt, select.hst').live('change', function() {
    var channels = parseInt($('#fancy_div select.hst').val(), 10) * parseInt($('#fancy_div select.htt').val(), 10);         
    $('#fancy_div span.yellow2').html(channels + ' Channels');
});

還是有更優雅的東西?

編輯

也許我可以做一個有條件的。 if ($.browser.msie但是如何用上面這個做,上面也是$(document).ready(function()

嘗試這個:

$('select.htt, select.hst').live($.browser.msie?'click':'change', function() { ....

您似乎遇到了以下問題的組合:

  1. change事件不會在IE中冒泡 ,而click事件會發生
  2. click事件不會在Safari中的<select> / <option>元素上觸發/ buuble ,而change事件會觸發/ buuble

我不確定你的情況最好的前進方向。

更改事件不應在任何瀏覽器中冒泡。

每當菜單添加到DOM時,我只需要讓代碼重新綁定更改處理程序,或者甚至可以在服務器腳本生成的情況下向select添加onchange屬性。

閱讀bug列表( http://bugs.jquery.com/ticket/5677 ),將以下CSS添加到元素中也是一個解決方案:

<style>
  element {
      cursor : pointer;
  }
</style>

適用於帶有safari的iphone4

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM