1

clickjQuery を使用してイベントをダブルクリックとして検出するにはどうすればよいですか? 基本的に、.selectクラス内のテキストを選択しやすくして、ユーザーがコンテンツをクリップボードにすばやくコピーできるようにしたいと考えています。

<li>
    <span>
        Don't Select me
    </span>
    <span>
        Don't Select me
    </span>
    <span class="select">
        Select Me on click!
    </span>
</li>
4

1 に答える 1

1

これを試して

function SelectText(element) {
    var doc = document;
    var text = doc.getElementById(element);    
    if (doc.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();        
        var range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

$(function() {
    $('.select').click(function() {
        SelectText('selectme');
    });
});​

https://stackoverflow.com/a/987376/1330581から取得

http://jsfiddle.net/edelman/KcX6A/339/


アップデート:

クリックした同じ要素のコンテンツを選択するには:

function SelectText(element) {
    var doc = document;
    var text = element;    
    if (doc.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();        
        var range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

$(function() {
    $('.select').click(function() {
        SelectText($(this)[0]); //Brackets are more efficiently that .get(0) method
    });
});​

例: http://jsfiddle.net/qBaWf/

于 2012-07-17T01:50:09.013 に答える