第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用jquery.內(nèi)聯(lián)編輯對文本區(qū)域進(jìn)行內(nèi)聯(lián)編輯.js – 獲取 id 并保存

使用jquery.內(nèi)聯(lián)編輯對文本區(qū)域進(jìn)行內(nèi)聯(lián)編輯.js – 獲取 id 并保存

炎炎設(shè)計 2022-09-23 17:36:35
我正在尋找一種簡單的方法來在表格中實現(xiàn)內(nèi)聯(lián)編輯(使用Django)。到目前為止,我還沒有測試像詹戈陣線或詹戈內(nèi)聯(lián)編輯這樣的東西。我已經(jīng)發(fā)現(xiàn),并非所有簡單的解決方案都適合我。正如我在這里描述的那樣,jqInline編輯和內(nèi)聯(lián)編輯.jquery.js只使用唯一的選擇器。使用jQuery.可編輯(jquery.內(nèi)聯(lián)編輯.js),我沒有這些問題,但我不知道如何獲取ID并保存數(shù)據(jù)。<div id="remark4" class="editable" data-cid="4">Test #4</div><div id="remark5" class="editable" data-cid="5">Test #5</div><div id="remark6" class="editable" data-cid="6">Test #6</div><script src="file:jquery.inline-edit.js"></script><script>    $('.remark').inlineEdit('click', {        // use textarea instead of input field        type: 'textarea',        // attributes for input field or textarea        attributes: {            id: $(this).attr("data-cid"),            class: 'input-class-1 input-class-2 input-class-3',            style: 'background:#ffe;'        }    });</script>零件是否正確?在表單中的內(nèi)容更改后,我該如何運(yùn)行一個?我沒有找到這方面的文檔或示例,到目前為止,試錯并不成功。$(this).attr("data-cid")alert(c_id + content)隨訪:文檔確實給出了示例。令人難以置信的是,我之前沒有看到這個,很抱歉。我嘗試了以下代碼而不是上面的代碼:    var option = { trigger: $(".editable"), action: "click" };    $(".editable").editable(option, function (e) {        alert(e.value);    });這是錯誤消息:TypeError: $(...).editable is not a function還怎么了?
查看完整描述

1 回答

?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗 獲得超8個贊

如果我可以建議使用HTML元素可編輯API的替代方案。

$("[data-cid]").prop({tabindex: 1, contenteditable: true}).on({


  focusin() {

    this.__html = $(this).html(); // Store current HTML content

  },

  

  focusout() {

  

    const data = {

      cid: this.dataset.cid,

      html: this.innerHTML,

    };

    

    if (this.__html === data.html) return;  // Nothing has changed.

    

    console.log(data); // Something changed, send data to server.

  }

  

})

<div data-cid="4">Test #4</div>

<div data-cid="5">Test #5</div>

<div data-cid="6">Test #6</div>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>


創(chuàng)建自己的庫

下面是一個示例,說明如何簡單地創(chuàng)建自己的可重用函數(shù):


// Editable

function Editable(sel, options) {

  if (!(this instanceof Editable)) return new Editable(...arguments); 

  

  const attr = (EL, obj) => Object.entries(obj).forEach(([prop, val]) => EL.setAttribute(prop, val));


  Object.assign(this, {

    onStart() {},

    onInput() {},

    onEnd() {},

    classEditing: "is-editing", // added onStart

    classModified: "is-modified", // added onEnd if content changed

  }, options || {}, {

    elements: document.querySelectorAll(sel),

    element: null, // the latest edited Element

    isModified: false, // true if onEnd the HTML content has changed

  });


  const start = (ev) => {

    this.isModified = false;

    this.element = ev.currentTarget;

    this.element.classList.add(this.classEditing);

    this.text_before = ev.currentTarget.textContent;

    this.html_before = ev.currentTarget.innerHTML;

    this.onStart.call(this.element, ev, this);

  };

  

  const input = (ev) => {

    this.text = this.element.textContent;

    this.html = this.element.innerHTML;

    this.isModified = this.html !== this.html_before;

    this.element.classList.toggle(this.classModified, this.isModified);

    this.onInput.call(this.element, ev, this);

  }


  const end = (ev) => {

    this.element.classList.remove(this.classEditing);

    this.onEnd.call(this.element, ev, this);

  }


  this.elements.forEach(el => {

    attr(el, {tabindex: 1, contenteditable: true});

    el.addEventListener("focusin", start);

    el.addEventListener("input", input);

    el.addEventListener("focusout", end);

  });


  return this;

}


// Use like:

Editable(".editable", {

  onEnd(ev, UI) { // ev=Event UI=Editable this=HTMLElement

    if (!UI.isModified) return; // No change in content. Abort here.

    const data = {

      cid: this.dataset.cid,

      text: this.textContent, // or you can also use UI.text

    }

    console.log(data); // Submit your data to server

  }

});

/* Your styles */

.editable { 

  padding: 10px;

  background: #eee;

  display: inline-block;

}


/* this class is handled by Editable */

.is-modified { 

  background: #bff;

}


/* this class is handled by Editable */

.is-editing { 

  background: #bfb;

  outline: none;

}

<div class="editable" data-cid="4">Test #4</div>

<div class="editable" data-cid="5">Test #5</div>

<div class="editable" data-cid="6">Test #6</div>

<div class="editable" data-cid="7">Test #7</div>

可編輯功能

Editable("selector", options);
返回:可編輯實例

選項對象:

性能:

classEditing:
字符串 - 要在焦點上添加的類(默認(rèn)值:"is-editing")

classModified:
字符串 - 如果內(nèi)容已更改,則要在焦點上添加的類(默認(rèn)值:"is-modified")

方法:

onStart(event, UI)
函數(shù) - 事件
參數(shù)上的觸發(fā)器:觸發(fā)回
調(diào)參數(shù)的事件:可編輯實例對象
綁定:綁定到關(guān)聯(lián)的 HTML 元素"focusin"eventUIthis

onInput(event, UI)
函數(shù) - 事件
參數(shù)上的觸發(fā)器:觸發(fā)回
調(diào)參數(shù)的事件:可編輯實例對象
綁定:綁定到關(guān)聯(lián)的 HTML 元素"input"eventUIthis

onEnd(event, UI)
函數(shù) - 事件
參數(shù)上的觸發(fā)器:觸發(fā)回
調(diào)參數(shù)的事件:可編輯實例對象
綁定:綁定到關(guān)聯(lián)的 HTML 元素"focusout"eventUIthis

參數(shù)(可編輯實例)屬性:UI

text 字符串 - 當(dāng)前編輯的元素的文本內(nèi)容
字符串 - 當(dāng)前編輯的元素的內(nèi)HTML
字符串 - 元素的文本在編輯
之前的內(nèi)容 字符串 - 元素的內(nèi)HTML 在編輯
布爾值之前 - 如果 innerHTML 不等于原始
- 靜態(tài)(非實時) 元素
的節(jié)點列表 - 最新編輯的 HTML 元素htmltext_beforehtml_beforeisModifiedtrueelementselement


查看完整回答
反對 回復(fù) 2022-09-23
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號