Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对同一事件但不同对象具有相同的函数jquery_Javascript_Jquery_Html_Twitter Bootstrap - Fatal编程技术网

Javascript 对同一事件但不同对象具有相同的函数jquery

Javascript 对同一事件但不同对象具有相同的函数jquery,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我正在用jquery创建一个动态LI 我有这个jquery来更改li的名称。我不想为此创建一个ID为li的新函数。我不认为这是最好的方法。如果我加上100 li,我将有100个函数。这是最好的方法 我这里有我的演示: $(“#pTabP”).dblclick(函数(){ $(“#tabPr1”).hide().sides(“.edit”).show().val($(“#tabPr1”).text()).focus(); }); $(“#fTab”).dblclick(函数(){ $(

我正在用jquery创建一个动态LI

我有这个jquery来更改li的名称。我不想为此创建一个ID为li的新函数。我不认为这是最好的方法。如果我加上100 li,我将有100个函数。这是最好的方法

我这里有我的演示:


  • $(“#pTabP”).dblclick(函数(){ $(“#tabPr1”).hide().sides(“.edit”).show().val($(“#tabPr1”).text()).focus(); }); $(“#fTab”).dblclick(函数(){ $(“#tabG1”).hide().sides(“.edit”).show().val($(“#tabG1”).text()).focus(); }); $(“.edit”).focusout(函数(){ $(this.hide().sides(“.display”).show().text($(this.val()); });
您可以这样做:

function getDblClickHandler (targetSelector) {
    return function () {
        var $target = $('#' + targetSelector);
        $target.hide();
        $target.siblings(".edit")
          .show()
          .val($target.text())
          .focus();
    };
}

$("#pTabP").dblclick(getDblClickHandler('#tabPr1'));
$("#fTab").dblclick(getDblClickHandler('#tabG1'));
或者,更紧凑:

var mappings = [
   { from: '#pTabP', to: '#tabPr1'},
   { from: '#fTab', to: '#tabG1'}
];

$.each(mappings, function (k, mapping) {
    $(mapping.from).dblclick(getDblClickHandler(mapping.to));
});

你可以这样做:

function getDblClickHandler (targetSelector) {
    return function () {
        var $target = $('#' + targetSelector);
        $target.hide();
        $target.siblings(".edit")
          .show()
          .val($target.text())
          .focus();
    };
}

$("#pTabP").dblclick(getDblClickHandler('#tabPr1'));
$("#fTab").dblclick(getDblClickHandler('#tabG1'));
或者,更紧凑:

var mappings = [
   { from: '#pTabP', to: '#tabPr1'},
   { from: '#fTab', to: '#tabG1'}
];

$.each(mappings, function (k, mapping) {
    $(mapping.from).dblclick(getDblClickHandler(mapping.to));
});

你可以这样做:

function getDblClickHandler (targetSelector) {
    return function () {
        var $target = $('#' + targetSelector);
        $target.hide();
        $target.siblings(".edit")
          .show()
          .val($target.text())
          .focus();
    };
}

$("#pTabP").dblclick(getDblClickHandler('#tabPr1'));
$("#fTab").dblclick(getDblClickHandler('#tabG1'));
或者,更紧凑:

var mappings = [
   { from: '#pTabP', to: '#tabPr1'},
   { from: '#fTab', to: '#tabG1'}
];

$.each(mappings, function (k, mapping) {
    $(mapping.from).dblclick(getDblClickHandler(mapping.to));
});

你可以这样做:

function getDblClickHandler (targetSelector) {
    return function () {
        var $target = $('#' + targetSelector);
        $target.hide();
        $target.siblings(".edit")
          .show()
          .val($target.text())
          .focus();
    };
}

$("#pTabP").dblclick(getDblClickHandler('#tabPr1'));
$("#fTab").dblclick(getDblClickHandler('#tabG1'));
或者,更紧凑:

var mappings = [
   { from: '#pTabP', to: '#tabPr1'},
   { from: '#fTab', to: '#tabG1'}
];

$.each(mappings, function (k, mapping) {
    $(mapping.from).dblclick(getDblClickHandler(mapping.to));
});

我在每个跨度中添加了一个edit_text类。一旦你双击它,它就会自动找到文本框并显示出来

我很确定这就是你想要的:


我在每个跨度中添加了一个edit_text类。一旦你双击它,它就会自动找到文本框并显示出来

我很确定这就是你想要的:


我在每个跨度中添加了一个edit_text类。一旦你双击它,它就会自动找到文本框并显示出来

我很确定这就是你想要的:


我在每个跨度中添加了一个edit_text类。一旦你双击它,它就会自动找到文本框并显示出来

我很确定这就是你想要的:

试一试

jshiddle

试试看

jshiddle

试试看

jshiddle

试试看


jsfiddle

但是如果我开始创建更多的li,我将不得不添加更多的$(“#fTab”).dblclick(getDblClickHandler('tabG1');这意味着我也会遇到同样的问题。我不知道你到底是什么意思,但在我的第二个版本中,你只需要为每个li添加一行。但是如果我开始创建更多li,我将不得不添加更多的$(“#fTab”).dblclick(getDblClickHandler('tabG1');这意味着我也会遇到同样的问题。我不知道你到底是什么意思,但在我的第二个版本中,你只需要为每个li添加一行。但是如果我开始创建更多li,我将不得不添加更多的$(“#fTab”).dblclick(getDblClickHandler('tabG1');这意味着我也会遇到同样的问题。我不知道你到底是什么意思,但在我的第二个版本中,你只需要为每个li添加一行。但是如果我开始创建更多li,我将不得不添加更多的$(“#fTab”).dblclick(getDblClickHandler('tabG1');这意味着我会有同样的问题。我不知道你到底是什么问题,但在我的第二个版本中,你只需要在每一个li中添加一行。