在span标记内套用onclick事件

时间:2019-05-09 02:30:51

标签: javascript jquery html clipboard.js

我正在尝试在span标签上应用onclick事件,但收到以下错误。我想我做对了。

VM409 twitter-message-73266664:892 Uncaught ReferenceError: clip is not 
defined
at HTMLSpanElement.onclick

span标签

<td><span id="bootstrap_css_link" class="badge  btn btn-success bootstrap_css_link" onclick="clip(this.id)" data-clipboard-target="#clipboardExample1">copy</span></td>

剪辑方法

$( document ).ready(function() {
    function clip(clip_id){
        var clipboard = new ClipboardJS(clip_id);
        clipboard.on('success', function(e) {
          setTooltip(e.trigger, 'Copied!');
          hideTooltip(e.trigger);
          //alert("hello");
        });
     } 
});

4 个答案:

答案 0 :(得分:1)

由于clip在函数内部,因此无法从函数外部访问。删除document.ready

function clip(clip_id) {
  var clipboard = new ClipboardJS(clip_id);
  clipboard.on('success', function(e) {
    setTooltip(e.trigger, 'Copied!');
    hideTooltip(e.trigger);
  });
}

答案 1 :(得分:0)

@Component public class ApiGlobalFilter implements GlobalFilter, Ordered { @Override public int getOrder() { return 0; } @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { if (HttpMethod.POST.toString().equals(exchange.getRequest().getMethodValue())){ /*// exchange.getRequest().get String bodyStr = resolveBodyFromRequest(serverHttpRequest);*/ ServerHttpRequest serverHttpRequest = exchange.getRequest(); Flux<DataBuffer> body = serverHttpRequest.getBody(); // System.out.println(body.toString()); /* AtomicReference<String> bodyRef = new AtomicReference<>(); serverHttpRequest.getBody().subscribe(dataBuffer -> { CharBuffer charBuffer = StandardCharsets.UTF_8.decode(dataBuffer.asByteBuffer()); DataBufferUtils.release(dataBuffer); bodyRef.set(charBuffer.toString()); }); String bodyStr = bodyRef.get();*/ AtomicReference<String> bodyRef = new AtomicReference<>(); body.subscribe(buffer -> { System.out.println("start111111111"); byte[] bytes = new byte[buffer.readableByteCount()]; buffer.read(bytes); DataBufferUtils.release(buffer); try { String bodyString = new String(bytes, "utf-8"); bodyRef.set(bodyString); System.out.println(bodyString); System.out.println("finish11111111"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }); String bodyStr = bodyRef.get(); System.out.println(bodyStr); URI uri = serverHttpRequest.getURI(); ServerHttpRequest request = serverHttpRequest.mutate().uri(uri).build(); DataBuffer bodyDataBuffer = stringBuffer(bodyStr); Flux<DataBuffer> bodyFlux = Flux.just(bodyDataBuffer); request = new ServerHttpRequestDecorator(request) { @Override public Flux<DataBuffer> getBody() { return bodyFlux; } }; return chain.filter(exchange.mutate().request(request).build()); // return chain.filter(exchange); } String token = exchange.getRequest().getQueryParams().getFirst("token"); if (StringUtils.isBlank(token)) { ServerHttpResponse response = exchange.getResponse(); Map<String,Object> message = new HashMap<>(); message.put("status", -1); message.put("data", "fail"); byte[] bits = message.toString().getBytes(StandardCharsets.UTF_8); DataBuffer buffer = response.bufferFactory().wrap(bits); response.setStatusCode(HttpStatus.UNAUTHORIZED); response.getHeaders().add("Content-Type", "text/json;charset=UTF-8"); return response.writeWith(Mono.just(buffer)); } return chain.filter(exchange); } private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) { Flux<DataBuffer> body = serverHttpRequest.getBody(); AtomicReference<String> bodyRef = new AtomicReference<>(); body.subscribe(buffer -> { CharBuffer charBuffer = StandardCharsets.UTF_8.decode(buffer.asByteBuffer()); DataBufferUtils.release(buffer); bodyRef.set(charBuffer.toString()); }); return bodyRef.get(); } private DataBuffer stringBuffer(String value) { byte[] bytes = value.getBytes(StandardCharsets.UTF_8); NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT); DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length); buffer.write(bytes); return buffer; } @Bean public HiddenHttpMethodFilter hiddenHttpMethodFilter() { return new HiddenHttpMethodFilter() { @Override public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) { return chain.filter(exchange); } }; } } 函数在全局范围内不可用,因为它是在另一个函数中定义的。您需要找到元素并通过JavaScript附加事件处理程序。

clip
$(document).ready(function() {
  $("#bootstrap_css_link").on("click", clip);

  function clip(event) {
    console.log(event.target.id)

  }
});

答案 2 :(得分:0)

import os,shutil

dict_extension = {
    'text_extension':('.txt'),
    'audio_extension':('.mp3','.aac','.ogg','.wma','.m4a','.wav','.flac'),
    'video_extension':('.mp4','.mkv','.flv','.mpeg'),
    # 'python_extension':('.py'),
    'excel_extension':('.csv','.xls'),
    'website_extension':('.html','.css'),
    'image_extension':('.jpg'),

}

#this function will return list of doc of particular extension
def file_list(folder_path,file_extension):
    return[file for file in os.listdir(folder_path) for extension in file_extension if file.endswith(extension)]

folderpath=input('Enter file path : ') #lets input folder path

for file_type,file_extension in dict_extension.items():         #to read dictionary
    folder_name=file_type.split('_')[0]+'_files'
    folder_newpath=os.path.join(folderpath,folder_name)            #get new folder path

    if os.path.exists(folder_newpath):
        pass
    elif file_list(folderpath,file_extension):    
        os.mkdir(folder_newpath)
    else:
        pass

    for item in file_list(folderpath,file_extension):           #to get list of file of specfic type by calling function
        item_old_path = os.path.join(folderpath,item)
        item_new_path = os.path.join(folder_newpath,item)
        shutil.move(item_old_path,item_new_path)

答案 3 :(得分:0)

您必须在$(document)之外定义clip函数。准备好,因此您只需要这样定义函数即可

function clip(clip_id){
    var clipboard = new ClipboardJS(clip_id);
    clipboard.on('success', function(e) {
      setTooltip(e.trigger, 'Copied!');
      hideTooltip(e.trigger);
      //alert("hello");
    });
 }