jquery ui selectable中click事件無效

來源:互聯網
上載者:User

在用jquery ui selectable時候,在一個Table的tr上綁定了selectable的事件,其中一個td中有<a/>連結,綁定了click事件。

測試時發現<a/>連結的click事件沒反應,並且是在捲軸在頁面最頂端的時候,捲軸沒反應,在捲軸下移之後,click事件觸發了!

google找到一個類似問題的解答:http://forum.jquery.com/topic/selectable-dosn-t-fire-click-event

在selectable初始化的時候加一個屬性:distance,並且值設成大於0。嘗試之後,果然click事件能正常觸發了。

但是這又導致另一個問題,本來在<tr/>上click事件能直接選中該行,但是distance設成大於0之後,tr的click事件開始無效了。

根據jquery ui的開發人員解釋,selectable的時候思想是:select的動作不應該和click動作同時發生。就是說如果distance屬性為0(預設就是0)的時候,click事件即被認為響應select事件,自訂的click事件會被屏蔽掉。所以這似乎是一個無解的事情!

但是jquery ui屏蔽click事件的做法好像是在點擊的時候產生了一個helper div來顯示lasso(這個詞不知道是不就是selectable在滑鼠拖動時顯示的虛線框),就是這個lasso阻止了click事件的發生。有一個人給出了一個解決辦法:

var content = $('#content').selectable();

var _mouseStart = content.data('selectable')['_mouseStart'];

content.data('selectable')['_mouseStart'] = function(e) {
    _mouseStart.call(this, e);
    this.helper.css({
        "top": -1,
        "left": -1
    });
};

試了一下,上面的代碼確實有效!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.